示例#1
0
        /// <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;
            }
        }
示例#2
0
    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();
    }
示例#3
0
 public static bool StateIs <T>(this IController <T> controller, T key, asd.ButtonState state)
 {
     return(controller.GetState(key) == state);
 }