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

SDL_GetKeyboardState

キーボードの状態を得る

構文

const Uint8* SDL_GetKeyboardState(int* numkeys)

引数

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

戻り値

キー状態の配列へのポインタを戻す. 値が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