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)

仮想ボタンに入力を割り当てます(動的割り当て)。

bool IsPressed(string buttonName)

指定した仮想ボタンが押されているかを取得します。

bool IsJustPressed(string buttonName)

指定した仮想ボタンが「押された瞬間」かどうかを取得します。

bool IsJustReleased(string buttonName)

指定した仮想ボタンが「離された瞬間」かどうかを取得します。

double GetPressedDuration(string buttonName)

指定した仮想ボタンが押され続けている時間(秒)を取得します。
押されていない場合は 0.0 を返します。

void ClearPressedDuration(string buttonName)

指定した仮想ボタンの押下時間を強制的に 0.0 にリセットします。
長押しイベント後の再発火防止などに使用します。

Vector2 GetVector()

方向入力(矢印キー、十字キー、左スティック)を統合したベクトル(-1.0~1.0)を取得します。

Vector2 GetMousePosition()

仮想画面上の解像度に変換されたマウスカーソル座標を取得します。

bool IsMousePressed(MouseButton button)

指定したマウスボタンが押されているか判定します。

bool IsMouseJustPressed(MouseButton button)

指定したマウスボタンが「押された瞬間」かどうか判定します。

bool IsMouseJustReleased(MouseButton button)

指定したマウスボタンが「離された瞬間」かどうか判定します。

void Vibrate(float seconds, float motorLeft, float motorRight)

ゲームパッドを振動させます。

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 を実行ファイルと同じディレクトリに配置することで、キー割り当てをカスタマイズできます。

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