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

SDL_GetKeyboardState

キーボードの状態を得る

構文

const Uint8* SDL_GetKeyboardState(int* numkeys)

引数

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

戻り値

キー状態の配列へのポインタを戻す.

サンプルコード

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内部の配列へのポインタである. アプリケーションの実行中は常に有効で, 呼び出し側は解放してはならない.

値が1のとき押されていて, 0のとき押されていない. 配列の添え字はSDL_Scancodeである.

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

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

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

バージョン

SDL 2.0.0以降

関連項目(関数)

SDL_PumpEvents
SDL_ResetKeyboard

SDL Wikiへのリンク

SDL_GetKeyboardState - SDL Wiki