PCに接続されている全てのジョイスティックに関する情報を返します。
エンジンのJoystickContainerプロパティから現在のフレームでの全てのジョイスティックの状態をコンテナとして持つ当クラスのインスタンスを取得できます。
個々のジョイスティックに関する入力状態については、GetJoystickAtメソッドの返り値であるJoystickクラスのインスタンスより取得可能です。また、個々のジョイスティックの入力状態を持つインスタンスを取得する前に、必ずIsPresentAtでそれが有効かどうか確かめてください。
全てのジョイスティックの有効性の状態の更新はRefreshAllJoysticks関数より行えます。
Joystickクラスに関してはジョイスティックの項目をご覧ください。
名称 | 説明 |
---|---|
IsPresentAt | 指定した番号のジョイスティックが有効かどうかを返す。 |
RefreshAllJoysticks | 全てのジョイスティックの有効性の状態を更新する。 |
GetJoystickAt | 指定した番号のジョイスティックの入力状態を持ったインスタンスを返す。(指定したジョイスティックが無効の場合はヌルポインタが返ってきます。) |
なし
なし
Joystickクラスのサンプルです。
/// <summary>
/// Joystickのサンプル。ジョイスティックによる入力を取得しています。
/// </summary>
class Joystick
{
[System.STAThread]
static void Main(string[] args)
{
// AC-Engineを初期化する。
var initialized = ace.Engine.Initialize("Joystick", 640, 480, new ace.EngineOption());
ace.JoystickContainer container = ace.Engine.JoystickContainer;
// 0番目のジョイスティックが接続されているか否かを確かめる
if (container.GetIsPresentAt(0))
{
// 一つも接続されていない場合は終了する
System.Console.WriteLine("No joystick are connected.");
ace.Engine.Terminate();
return;
}
// AC-Engineのウインドウが閉じられていないか確認する。
while (ace.Engine.DoEvents())
{
// 一つ目のジョイスティックの0番目のボタンの入力状態を表示する
switch (container.GetJoystickAt(0).GetButtonState(0))
{
case ace.JoystickButtonState.Free: //前フレーム、現フレーム共に非押下。
System.Console.WriteLine("Free");
break;
case ace.JoystickButtonState.Hold: //前フレーム、現フレーム共に押下。
System.Console.WriteLine("Hold");
break;
case ace.JoystickButtonState.Release: //前フレームで押下、現フレームで非押下。
System.Console.WriteLine("Release");
break;
case ace.JoystickButtonState.Push: //前フレームで非押下、現フレームで押下。
System.Console.WriteLine("Push");
break;
}
// AC-Engineを更新する。
ace.Engine.Update();
}
//AC-Engineの終了処理をする。
ace.Engine.Terminate();
}
}