目次 - API(機能別) - キーボード - SDL_GetKeyboardState

# SDL_GetKeyboardState

キーボードの状態を得る

## 構文

`const Uint8* SDL_GetKeyboardState(int* numkeys)`

## 引数

numkeys | NULLでないとき, 戻した配列の長さが代入される

## 戻り値

キー状態の配列へのポインタを戻す. 値が1のとき押されていて, 0のとき押されていない. 配列の添え字はSDL_Scancodeである. 戻されたポインタはSDL内部の配列へのポインタである. アプリケーションの実行中は常に有効で, 呼び出し側は解放する必要はない.

## サンプルコード

``

    const Uint8 *state = SDL_GetKeyboardState(NULL);
    if (state[SDL_SCANCODE_RETURN]) {
        printf("<RETURN> が押された\n");
    }
    if (state[SDL_SCANCODE_RIGHT] && state[SDL_SCANCODE_UP]) {
        printf("右と上が押された\n");
    }

## 詳細

メモ: SDL_PumpEvents()でこの状態は更新される.

メモ: この関数は全てのイベントを処理した後に状態を獲得する. よって, もしイベントを処理する前にキーやボタンを押したり離したりすると, SDL_GetKeyboardState()では押されたキーを知ることができない.

メモ: この関数はシフトキーの状態を考慮しない.

## 関連項目(関数)

SDL_PumpEvents

## SDL Wikiへのリンク

SDL_GetKeyboardState - SDL Wiki