マウス (Mouse)

概要

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

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

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

ボタンの押し状態

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

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

主なメソッド

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

主なプロパティ

なし

主なイベント

なし

使用方法

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


  /// <summary>
  /// Mouseのサンプル。マウスによる入力を取得しています。
  /// </summary>
  class Mouse
  {
      [System.STAThread]
      static void Main(string[] args)
      {
          // AC-Engineを初期化する。
          var initialized = ace.Engine.Initialize("Mouse", 640, 480, new ace.EngineOption());
  
          // AC-Engineが続行可能か調べる。
          while (ace.Engine.DoEvents())
          {
              // マウスへの参照を取得する。
              ace.Mouse mouse = ace.Engine.Mouse;
  
              //マウスカーソルの座標を取得して表示する。
              {
                  ace.Vector2DF v = mouse.Position;
  
                  System.Console.Write("Cursor Position:({0},{1}) ", v.X, v.Y);
              }
  
              // マウスの中央ボタンの押下状態を表示する。
              switch (mouse.MiddleButton.ButtonState)
              {
                  case ace.MouseButtonState.Free: //前フレーム、現フレーム共に非押下。
                      System.Console.Write("Middle Free");
                      break;
                  case ace.MouseButtonState.Hold: //前フレーム、現フレーム共に押下。
                      System.Console.Write("Middle Hold");
                      break;
                  case ace.MouseButtonState.Release: //前フレームで押下、現フレームで非押下。
                      System.Console.Write("Middle Release");
                      break;
                  case ace.MouseButtonState.Push: //前フレームで非押下、現フレームで押下。
                      System.Console.Write("Middle Push");
                      break;
              }
  
              // マウスのホイールの回転状態を取得して表示する。
              {
                  System.Console.WriteLine(" Wheel : " + mouse.MiddleButton.WheelRotation);
              }
  
              // AC-Engineを更新する。
              ace.Engine.Update();
          }
  
          // AC-Engineの終了処理をする。
          ace.Engine.Terminate();
      }
  }