const Uint8* SDL_GetKeyboardState(int* numkeys)
numkeys | NULLでないとき, 戻した配列の長さが代入される |
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()では押されたキーを知ることができない.
メモ: この関数はシフトキーの状態を考慮しない.