Class: TonInput
キーボードとゲームパッドの入力を統合して扱います。「input.config」ファイルによるキーコンフィグもサポートします。
※仮想ボタン名("Left", "A" など)は大文字小文字を区別しません。
MouseButton Enum
マウスボタン判定に使用する列挙型です。
| Enum Value | Description |
|---|---|
| Left | 左クリック |
| Right | 右クリック |
| Middle | 中ボタン(ホイールクリック) |
| XButton1 | 戻るボタン等(マウス依存) |
| XButton2 | 進むボタン等(マウス依存) |
Default Key Mappings
| Button Name | Keyboard | Gamepad |
|---|---|---|
| Up | Up Arrow | DPad Up |
| Down | Down Arrow | DPad Down |
| Left | Left Arrow | DPad Left |
| Right | Right Arrow | DPad Right |
| A | Z | A Button |
| B | X | B Button |
| X | C | X Button |
| Y | A | Y Button |
| R | W | R Button |
| L | Q | L Button |
| Start | Enter | Start |
| Select | Space | Back |
Methods
void RegisterButton(string name, Keys key, Buttons btn)
仮想ボタンに入力を割り当てます(動的割り当て)。
name: 仮想ボタン名key: キーボードのキー (Keys列挙体)btn: ゲームパッドのボタン (Buttons列挙体)
bool IsPressed(string buttonName)
指定した仮想ボタンが押されているかを取得します。
buttonName: 仮想ボタン名("A", "B", "Start", "Up"など)
bool IsJustPressed(string buttonName)
指定した仮想ボタンが「押された瞬間」かどうかを取得します。
buttonName: 仮想ボタン名
bool IsJustReleased(string buttonName)
指定した仮想ボタンが「離された瞬間」かどうかを取得します。
buttonName: 仮想ボタン名
double GetPressedDuration(string buttonName)
指定した仮想ボタンが押され続けている時間(秒)を取得します。
押されていない場合は 0.0 を返します。
buttonName: 仮想ボタン名
void ClearPressedDuration(string buttonName)
指定した仮想ボタンの押下時間を強制的に 0.0 にリセットします。
長押しイベント後の再発火防止などに使用します。
buttonName: 仮想ボタン名
Vector2 GetVector()
方向入力(矢印キー、十字キー、左スティック)を統合したベクトル(-1.0~1.0)を取得します。
Vector2 GetMousePosition()
仮想画面上の解像度に変換されたマウスカーソル座標を取得します。
bool IsMousePressed(MouseButton button)
指定したマウスボタンが押されているか判定します。
button: MouseButton.Left, MouseButton.Right, MouseButton.Middle など
bool IsMouseJustPressed(MouseButton button)
指定したマウスボタンが「押された瞬間」かどうか判定します。
button: MouseButton.Left, MouseButton.Right, MouseButton.Middle など
bool IsMouseJustReleased(MouseButton button)
指定したマウスボタンが「離された瞬間」かどうか判定します。
button: MouseButton.Left, MouseButton.Right, MouseButton.Middle など
void Vibrate(float seconds, float motorLeft, float motorRight)
ゲームパッドを振動させます。
seconds: 振動時間(秒)motorLeft: 左モーターの強さ(0.0~1.0)motorRight: 右モーターの強さ(0.0~1.0)
Sample Code
// In Initialize()
// No specific initialization required for user code usually,
// but you can load config or set up specific variables here.
// In Update()
// Check if 'A' button (e.g., Z key or Gamepad A) is Just Pressed
if (Ton.Input.IsJustPressed("A"))
{
// Jump action
player.Jump();
}
// Check if 'B' button is being held down
if (Ton.Input.IsPressed("B"))
{
// Dash action
player.Dash();
}
// Get Direction Vector (Arrow keys, WASD, or Left Stick)
// Returns normalized vector or zero
Vector2 dir = Ton.Input.GetVector();
if (dir != Vector2.Zero)
{
player.Move(dir);
}
// Get Mouse Position (in Virtual Coordinates)
Vector2 mousePos = Ton.Input.GetMousePosition();
// Vibrate Controller for 0.5 seconds
if (player.IsDamaged)
{
Ton.Input.Vibrate(0.5f, 1.0f, 1.0f);
}
Configuration File (input.config)
キーコンフィグファイル input.config を実行ファイルと同じディレクトリに配置することで、キー割り当てをカスタマイズできます。
- 配置場所: 実行ファイル(.exe)と同じフォルダ
- フォーマット:
VirtualButtonName,Keys,Buttons(CSV形式)
Sample Configuration
# This is comment
# Format: Name,KeyboardKey,GamepadButton
# 基本操作
Up,Up,DPadUp
Down,Down,DPadDown
Left,Left,DPadLeft
Right,Right,DPadRight
# アクション
A,Z,A
B,X,B
X,C,X
Y,V,Y
# メニュー操作
Start,Enter,Start
Select,Space,Back
L,Q,LeftShoulder
R,W,RightShoulder