Skip to content

Latest commit

 

History

History
81 lines (53 loc) · 5.26 KB

Joystick.md

File metadata and controls

81 lines (53 loc) · 5.26 KB

ジョイスティック

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です。

GetButtonState(int joystickIndex, JoystickButton button)

第2引数にJoystickButtonを指定します。 JoystickInfoのIsGamepadがtrueの時のみ利用できます。

GetButtonState(int joystickIndex, int buttonIndex)

第2引数にボタンのインデックスを指定します。

[!code-csharpMain]

スティック入力の取得

スティックの取得には以下のメソッドを用います。

第一引数に取得したいジョイスティックコントローラーのインデックスを指定します。 戻り値は-1から1の間のfloatです。 取得できる値は、左右スティックの水平方向(LeftX, RightX), 垂直方向(LeftY, RightY)、左右のトリガー(LeftTrigger, RightTrigger)です。

GetAxisState(int joystickIndex, JoystickAxis axis)

第2引数にJoystickAxisを指定します。 JoystickInfoのIsGamepadがtrueの時のみ利用できます。

GetAxisState(int joystickIndex, int axisIndex)

第2引数にスティックのインデックスを指定します。

[!code-csharpMain]