Joystickクラスはジョイスティックコントローラーについての機能を提供します。 コントローラーの検出やコントローラー情報の取得、ボタンやスティックの入力の取得が可能です。
SDL GameControllerDBに対応しているコントローラー(およそ数百種類)では、JoystickButtonやJoystickAxisを利用して抽象化されたコントローラーへのアクセスが可能です。
Altseed2のInitializeを呼び出した後、Engine.Joystick
という形でJoystickの各種メソッドを呼び出してください。
Joystickを接続・取り外しした際には、自動的にインデックスが更新されます。
Engine.Joystick.GetJoystickInfo(int joystickIndex)を利用して、指定したインデックスのジョイスティックの情報を取得できます。
返り値はJoystickInfoです。
ジョイスティックが接続されていない場合はnull
を返します。
JoystickInfoを通して、ジョイスティックの情報を取得できます。
- IsGamepad: ジョイスティックがGameControllerDBに登録された製品かどうかを取得できます。
- GamepadName: IsGamepadが
true
の場合にのみ使えます。GameControllerDBに登録された、わかりやすい名前を取得できます。 - Name: IsGamepadが
false
の場合はこちらを利用してください。
また、Engine.Joystick.IsPresent(int joystickIndex)を利用しても、指定したインデックスにジョイスティックが接続されているかどうかを取得できます。
ボタンの取得は以下のメソッドを用いて行います。 第一引数に取得したいジョイスティックコントローラーのインデックスを指定します。 戻り値はButtonStateです。
第2引数にJoystickButtonを指定します。
JoystickInfoのIsGamepadがtrue
の時のみ利用できます。
第2引数にボタンのインデックスを指定します。
[!code-csharpMain]
スティックの取得には以下のメソッドを用います。
第一引数に取得したいジョイスティックコントローラーのインデックスを指定します。 戻り値は-1から1の間のfloatです。 取得できる値は、左右スティックの水平方向(LeftX, RightX), 垂直方向(LeftY, RightY)、左右のトリガー(LeftTrigger, RightTrigger)です。
第2引数にJoystickAxisを指定します。
JoystickInfoのIsGamepadがtrue
の時のみ利用できます。
第2引数にスティックのインデックスを指定します。
[!code-csharpMain]