キーボード
初級 プログラマー
キーボードは、デスクトップ ゲームで最も一般的な入力デバイスです。Stride にはキーボード入力を処理する 2 つの方法があります。
- キーの状態を問い合わせる**
- KeyEvent リストを使用する
どちらにも、input 基底クラスからアクセスできます。これらのオプションの詳細については、「入力」を参照してください。
キーボードを使用できるかどうかを調べる
キーボード入力を処理する前に、Input.HasKeyboard を使用してキーボードが接続されているかどうかを調べます。
キーの状態を取得する
キーの状態と状態の変化を、以下のメソッドで問い合わせることができます。
メソッド | 説明 |
---|---|
IsKeyDown(Keys) | 指定したキーがダウン状態かどうかを調べます。 |
IsKeyPressed(Keys) | 指定したキーが最後の更新以降に押されたかどうかを調べます。 |
IsKeyReleased(Keys) | 指定したキーが最後の更新以降に放されたかどうかを調べます。 |
Note
Stride では、解釈済みのキーの取得はサポートされません (特殊な文字や大文字など)。
キー イベントを取得する
場合によっては、現在_ダウン_状態になっているすべてのキー、または最後の更新以降に_押された_すべてのキーを知りたいことがあります。キー状態 API は、使用可能な各キーを個別に問い合わせる必要があるため、このような場合には適切ではありません。
代わりに、Input 基底クラスで使用できるキー イベント コレクションを使用します。
パブリック リスト | 説明 l |
---|---|
InputManager.DownKeys | 最後の更新でダウン状態であったキーのリストを取得します。 |
InputManager.PressedKeys | 最後の更新で押されたキーのリストを取得します。 |
InputManager.ReleasedKeys | 最後の更新で放されたキーのリストを取得します。 |
InputManager.KeyEvents | 最後の更新でのキー イベントのリストを取得します (押されたキーまたは放されたキー)。 |
すべての KeyEvent に、2 つのプロパティ Key (影響を受けたキー) と IsDown (キーの新しい状態) があります。
コード例
public class KeyboardEventsScript : SyncScript
{
// Game Studio に表示された、パブリック メンバー変数とプロパティの宣言。
public override void Update()
{
// すべての更新でアクションを実行する。
if (Game.IsRunning)
{
if (Input.IsKeyDown(Keys.Left))
{
this.Entity.Transform.Position.X -= 0.1f;
}
if (Input.IsKeyDown(Keys.Right))
{
this.Entity.Transform.Position.X += 0.1f;
}
}
}
}