Table of Contents

キーボード

初級 プログラマー

キーボードは、デスクトップ ゲームで最も一般的な入力デバイスです。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;
			}
		}
	}
}

関連項目