マウスからの入力を扱うクラスです。
エンジンの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();
}
}