キーボードからの入力を扱うクラスです。
エンジンのKeyboardプロパティから現在のフレームのキーボードの各キーの押し状態を持った当クラスのインスタンスを取得できます。
GetKeyStateにて指定したキーの押し状態を取得することが可能です。
押し状態は前のフレームと現在のフレームでそのキーを押したかによって決まり、以下の4通りとなります。(○・・・押している、✕・・・押していない)
状態 | 前のフレーム | 現在のフレーム |
---|---|---|
Free | ✕ | ✕ |
Release | ○ | ✕ |
Push | ✕ | ○ |
Hold | ○ | ○ |
名称 | 説明 |
---|---|
GetKeyState | 指定したキーの押し状態 |
なし
なし
Keyboardクラスのサンプルです。
#include <ace.h>
// Keyboardのサンプル。キーボードによる入力を取得しています。
int main()
{
// AC-Engineを初期化する。
ace::Engine::Initialize(ace::ToAString("Keyboard").c_str(), 640, 480, ace::EngineOption());
// AC-Engineのウインドウが閉じられていないか確認する。
while (ace::Engine::DoEvents())
{
// キーボードのZキーの入力状態を取得する。
switch (ace::Engine::GetKeyboard()->GetKeyState(ace::Keys::Z))
{
case ace::KeyState::Free: // 前フレームと本フレームで非押下
printf("Z key free\n");
break;
case ace::KeyState::Hold: // 前フレームと本フレームで押下
printf("Z key hold\n");
break;
case ace::KeyState::Release: // 前フレームで押下、本フレームで非押下
printf("Z key release\n");
break;
case ace::KeyState::Push: // 前フレームで非押下、本フレームで押下
printf("Z key push\n");
break;
}
// AC-Engineを更新する。
ace::Engine::Update();
}
//AC-Engineの終了処理をする。
ace::Engine::Terminate();
return 0;
}