ジョイスティックコンテナ (JoystickContainer)

概要

PCに接続されている全てのジョイスティックに関する情報を返します。

エンジンのJoystickContainerプロパティから現在のフレームでの全てのジョイスティックの状態をコンテナとして持つ当クラスのインスタンスを取得できます。

個々のジョイスティックに関する入力状態については、GetJoystickAtメソッドの返り値であるJoystickクラスのインスタンスより取得可能です。また、個々のジョイスティックの入力状態を持つインスタンスを取得する前に、必ずIsPresentAtでそれが有効かどうか確かめてください。
全てのジョイスティックの有効性の状態の更新はRefreshAllJoysticks関数より行えます。

Joystickクラスに関してはジョイスティックの項目をご覧ください。

主なメソッド

名称 説明
IsPresentAt 指定した番号のジョイスティックが有効かどうかを返す。
RefreshAllJoysticks 全てのジョイスティックの有効性の状態を更新する。
GetJoystickAt 指定した番号のジョイスティックの入力状態を持ったインスタンスを返す。(指定したジョイスティックが無効の場合はヌルポインタが返ってきます。)

主なプロパティ

なし

主なイベント

なし

使用方法

Joystickクラスのサンプルです。


  #include <ace.h>
  
  // Joystickのサンプル。ジョイスティックによる入力を取得しています。
  int main()
  {
      // AC-Engineを初期化する。
      ace::Engine::Initialize(ace::ToAString("Joystick").c_str(), 640, 480, ace::EngineOption());
  
      // ジョイスティックが最低一つ接続されているかどうかを確認する。
      if (!ace::Engine::GetJoystickContainer()->GetIsPresentAt(0))
      {
          // 一つも接続されていない場合は終了する
          ace::Engine::Terminate();
          printf("No joystick are connected.\n");
          return 0;
      }
  
      // AC-Engineのウインドウが閉じられていないか確認する。
      while (ace::Engine::DoEvents())
      {
          // 一つ目のジョイスティックの0番目のボタンの入力状態を表示する
          ace::Joystick* joystick = ace::Engine::GetJoystickContainer()->GetJoystickAt(0);
          switch (joystick->GetButtonState(0))
          {
          case ace::JoystickButtonState::Free: //前フレームと本フレームで非押下
              printf("Free\n");
              break;
          case ace::JoystickButtonState::Hold: //前フレームと本フレームで押下
              printf("Hold\n");
              break;
          case ace::JoystickButtonState::Release: //前フレームで押下、本フレームで非押下
              printf("Release\n");
              break;
          case ace::JoystickButtonState::Push: //前フレームで非押下、本フレームで押下
              printf("Push\n");
              break;
          }
  
          // AC-Engineを更新する。
          ace::Engine::Update();
      }
  
      //AC-Engineの終了処理をする。
      ace::Engine::Terminate();
  
      return 0;
  }