コンテンツにスキップ

キーボード入力

Prometeでは、Keyboardプラグインを使って簡単にキーボード入力を取得できます。 キーの押下・離上・連打検出や、文字列入力、全キー列挙など幅広い用途に対応しています。

基本の使い方

Keyboardはプラグインとして登録し、シーンのコンストラクタで依存性注入を利用して受け取ります。

// プラグイン登録例(Program.cs)
var app = PrometeApp.Create()
.Use<Keyboard>()
.BuildWithOpenGLDesktop();
return app.Run<MainScene>();
// シーンでの利用例
public class MainScene(Keyboard keyboard) : Scene
{
public override void OnUpdate()
{
if (keyboard.Up.IsKeyDown)
{
// 上キーが押されたときの処理
}
if (keyboard.Enter.IsKeyDown)
{
// Enterキーが押されたときの処理
}
}
}

主なAPI

  • keyboard.AllKeyCodes
    すべてのキーコードを列挙します。
  • keyboard.AllPressedKeys
    現在押されているキーを列挙します。
  • keyboard.AllDownKeys
    このフレームで押されたキーを列挙します。
  • keyboard.AllUpKeys
    このフレームで離されたキーを列挙します。
  • keyboard.GetString()
    入力された文字列を取得します(バッファはクリアされます)。
  • keyboard.HasChar()
    入力バッファに文字があるか判定します。

サンプル:メニュー操作

public override void OnUpdate()
{
if (keyboard.Up.IsKeyDown)
CurrentIndex--;
if (keyboard.Down.IsKeyDown)
CurrentIndex++;
if (keyboard.Enter.IsKeyDown)
SelectMenu();
}

ノート

  • 入力バッファは GetString()GetChar() で消費されます。
  • モバイル環境では OpenVirtualKeyboard() で仮想キーボードを開けます。
  • キーコードは KeyCode 列挙体で管理されています。