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