/// <summary> /// マウスの衝突とボタンの状態を元にボタンの状態の更新を行う。 /// </summary> /// <param name="operation"></param> public void Update(asd.CollisionType collision, asd.ButtonState state) { if ( State != ButtonState.Default && collision == asd.CollisionType.Exit ) { UpdateState(ButtonOperation.Exit); return; } switch (State) { case ButtonState.Default: if ( collision != asd.CollisionType.Exit && state == asd.ButtonState.Free ) { UpdateState(ButtonOperation.Enter); } break; case ButtonState.Hover: if (state == asd.ButtonState.Push) { UpdateState(ButtonOperation.Push); } break; case ButtonState.Hold: if (state == asd.ButtonState.Release) { UpdateState(ButtonOperation.Release); } break; } }
public void Run() { // Altseedを初期化する。 asd.Engine.Initialize("Keyboard_PuralKeys", 640, 480, new asd.EngineOption()); var font = asd.Engine.Graphics.CreateDynamicFont("", 40, new asd.Color(255, 255, 255, 255), 1, new asd.Color(0, 0, 0, 255)); // キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。 var keyStateText = new asd.TextObject2D(); keyStateText.Position = new asd.Vector2DF(10, 10); keyStateText.Font = font; asd.Engine.AddObject2D(keyStateText); // 入力チェックするキー一覧。(Z, X, C, V, B) List <asd.Keys> keys = new List <asd.Keys>(); keys.Add(asd.Keys.Z); keys.Add(asd.Keys.X); keys.Add(asd.Keys.C); keys.Add(asd.Keys.V); keys.Add(asd.Keys.B); //キーの文字列表現。 List <string> keyStrs = new List <string>(); keyStrs.Add("Z"); keyStrs.Add("X"); keyStrs.Add("C"); keyStrs.Add("V"); keyStrs.Add("B"); // Altseedのウインドウが閉じられていないか確認する。 while (asd.Engine.DoEvents()) { string displayStr = ""; //すべてのキーに対して入力状態を確認してから表示する。 for (int i = 0; i < keys.Count; i++) { string keystr = keyStrs[i]; // キーボードのZキーの入力状態を取得する。 asd.ButtonState state = asd.Engine.Keyboard.GetKeyState(keys[i]); if (state == asd.ButtonState.Free) // 前フレームと本フレームで非押下 { displayStr += (keystr + "キーを離しています。"); } else if (state == asd.ButtonState.Hold) // 前フレームと本フレームで押下 { displayStr += (keystr + "キーを押しています。"); } else if (state == asd.ButtonState.Release) // 前フレームで押下、本フレームで非押下 { displayStr += (keystr + "キーを離しました!"); } else if (state == asd.ButtonState.Push) // 前フレームで非押下、本フレームで押下 { displayStr += (keystr + "キーを押しました!"); } displayStr += "\n"; } // キー入力状態を示す文字列を更新する。 keyStateText.Text = displayStr; // Altseedを更新する。 asd.Engine.Update(); Recorder.CaptureScreen("Keyboard_PuralKeys", 30, 60, 0.2f, 0.5f); Recorder.TakeScreenShot("Keyboard_PuralKeys", 30); } //Altseedの終了処理をする。 asd.Engine.Terminate(); }
public static bool StateIs <T>(this IController <T> controller, T key, asd.ButtonState state) { return(controller.GetState(key) == state); }