예제 #1
0
        public void HandleKeyEvent(string keyValue, string keyAction)
        {
            switch (keyValue)
            {
            case "KEY_PRESS":
                switch (keyAction)
                {
                case "KEY_UP":
                case "KEY_W":
                    if (activePauseButton == 1)
                    {
                        activePauseButton = 0;
                    }

                    break;

                case "KEY_DOWN":
                case "KEY_S":
                    if (activePauseButton == 0)
                    {
                        activePauseButton = 1;
                    }

                    break;

                case "KEY_ENTER":
                    if (activePauseButton == 0)
                    {
                        SpaceTaxiBus.GetBus().RegisterEvent(
                            GameEventFactory <object> .CreateGameEventForAllProcessors(
                                GameEventType.GameStateEvent,
                                this,
                                "CHANGE_STATE",
                                "GAME_RUNNING", ""));
                    }
                    else
                    {
                        GameRunning.GetInstance0();
                        SpaceTaxiBus.GetBus().RegisterEvent(
                            GameEventFactory <object> .CreateGameEventForAllProcessors(
                                GameEventType.GameStateEvent,
                                this,
                                "CHANGE_STATE",
                                "GAME_MAINMENU", ""));
                    }

                    break;
                }

                break;

            case "KEY_RELEASE":
                break;
            }
        }
예제 #2
0
        public void HandleKeyEvent(string keyValue, string keyAction)
        {
            switch (keyValue)
            {
            case "KEY_PRESS":
                switch (keyAction)
                {
                case "KEY_ESCAPE":
                    SpaceTaxiBus.GetBus().RegisterEvent(
                        GameEventFactory <object> .CreateGameEventForAllProcessors(
                            GameEventType.GameStateEvent,
                            this,
                            "CHANGE_STATE",
                            "GAME_PAUSED", ""));
                    break;

                case "KEY_SPACE":
                    GameRunning.GetInstance0();
                    SpaceTaxiBus.GetBus().RegisterEvent(
                        GameEventFactory <object> .CreateGameEventForAllProcessors(
                            GameEventType.GameStateEvent,
                            this,
                            "CHANGE_STATE",
                            "GAME_MAINMENU", ""));

                    break;

                case "KEY_Q":
                    SpaceTaxiBus.GetBus().RegisterEvent(
                        GameEventFactory <object> .CreateGameEventForAllProcessors(
                            GameEventType.WindowEvent,
                            this,
                            "SAVE_SCREENSHOT",
                            "", ""));

                    break;

                case "KEY_UP":
                case "KEY_W":
                    player.ProcessEvent(GameEventType.PlayerEvent,
                                        GameEventFactory <object> .CreateGameEventForAllProcessors(
                                            GameEventType.PlayerEvent, this,
                                            "BOOSTER_UPWARDS",
                                            "", ""));
                    break;

                case "KEY_LEFT":
                case "KEY_A":
                    player.ProcessEvent(GameEventType.PlayerEvent,
                                        GameEventFactory <object> .CreateGameEventForAllProcessors(
                                            GameEventType.PlayerEvent, this,
                                            "BOOSTER_TO_LEFT",
                                            "", ""));
                    break;

                case "KEY_RIGHT":
                case "KEY_D":
                    player.ProcessEvent(GameEventType.PlayerEvent,
                                        GameEventFactory <object> .CreateGameEventForAllProcessors(
                                            GameEventType.PlayerEvent, this,
                                            "BOOSTER_TO_RIGHT",
                                            "", ""));
                    break;
                }

                break;

            case "KEY_RELEASE":
                switch (keyAction)
                {
                case "KEY_LEFT":
                case "KEY_A":
                    player.ProcessEvent(GameEventType.PlayerEvent,
                                        GameEventFactory <object> .CreateGameEventForAllProcessors(
                                            GameEventType.PlayerEvent, this,
                                            "STOP_ACCELERATE_LEFT",
                                            "", ""));

                    break;

                case "KEY_RIGHT":
                case "KEY_D":
                    player.ProcessEvent(GameEventType.PlayerEvent,
                                        GameEventFactory <object> .CreateGameEventForAllProcessors(
                                            GameEventType.PlayerEvent, this,
                                            "STOP_ACCELERATE_RIGHT",
                                            "", ""));

                    break;

                case "KEY_UP":
                case "KEY_W":
                    player.ProcessEvent(GameEventType.PlayerEvent,
                                        GameEventFactory <object> .CreateGameEventForAllProcessors(
                                            GameEventType.PlayerEvent, this,
                                            "STOP_ACCELERATE_UP",
                                            "", ""));

                    break;
                }

                break;
            }
        }