マウス (Mouse)

概要

マウスからの入力を扱うクラスです。

エンジンのMouseプロパティから現在のフレームのマウスの入力状態を持った当クラスのインスタンスを取得できます。

マウスが持つ左ボタン、右ボタンならびに中央ボタンの押し状態と、中央ボタンのホイールの回転状態を調べることが出来ます。

ボタンの押し状態

押し状態は前のフレームと現在のフレームでそのボタンを押したかによって決まり、以下の4通りとなります。(○・・・押している、✕・・・押していない)

状態 前のフレーム 現在のフレーム
Free
Release
Push
Hold

主なメソッド

名称 説明
LeftButton マウスの左ボタンの入力状態に関するインタフェースを取得(ボタンの押し状態)
MiddleButton マウスの中央ボタンの入力状態に関するインタフェースを取得(ボタンの押し状態とホイールの回転状態)
RightButton マウスの右ボタンの入力状態に関するインタフェースを取得(ボタンの押し状態)
Position マウスポインタの位置を取得

主なプロパティ

なし

主なイベント

なし

使用方法

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


  #include <ace.h>
  
  // Mouseのサンプル。マウスによる入力を取得しています。
  int main()
  {
      //AC-Engineを初期化する。
      ace::Engine::Initialize(ace::ToAString("Mouse").c_str(), 640, 480, ace::EngineOption());
  
      // AC-Engineのウインドウが閉じられていないか確認する。
      while (ace::Engine::DoEvents())
      {
          // マウスへの参照を取得する。
          ace::Mouse* mouse = ace::Engine::GetMouse();
  
          // マウスカーソルの座標を取得して表示する。
          {
              ace::Vector2DF v = mouse->GetPosition();
  
              printf("Cursor Position:(%f,%f) ", v.X, v.Y);
          }
  
          // マウスの中央クリック状態を取得して表示する。
          {
              switch (mouse->GetMiddleButton()->GetButtonState())
              {
              case ace::MouseButtonState::Free: //前フレームと本フレームで非押下
                  printf("Middle Free");
                  break;
              case ace::MouseButtonState::Hold: //前フレームと本フレームで押下
                  printf("Middle Hold");
                  break;
              case ace::MouseButtonState::Release: //前フレームで押下、本フレームで非押下
                  printf("Middle Release");
                  break;
              case ace::MouseButtonState::Push: //前フレームで非押下、本フレームで押下
                  printf("Middle Push");
                  break;
              }
          }
  
          // マウスのホイールの回転状態を取得して表示する。
          {
              printf(" Wheel : %f\n", mouse->GetMiddleButton()->GetRotation());
          }
  
          // AC-Engineを更新する。
          ace::Engine::Update();
      }
  
      //AC-Engineの終了処理をする。
      ace::Engine::Terminate();
  
      return 0;
  }