private void continueButton_Click(object sender, EventArgs e) { if (Highscore.IsNewHighscore(CurrentScore)) { if (String.IsNullOrEmpty(playerNameTextBox.Text)) { // TODO: Inform user return; } Highscore.Add(playerNameTextBox.Text, CurrentScore); } eventManager.Queue(GameStateChangedEvent.To(GameState.Highscore)); }
public Application() { Game = new GameLogic(1024, 768, resourceManager); Views = new List <IGameView>(); Views.Add(new PlayerView(Game)); Views.Add(new AiView(Game)); resourceManager.AddLoader(new DummyLoader()); #if DEBUG resourceManager.AddWiper(new DebugWiper()); #endif resourceManager.AddWiper(new FileUpdater()); Game.EventManager.Queue(GameStateChangedEvent.To(GameState.StartUp)); Game.EventManager.Queue(GameStateChangedEvent.To(GameState.Menu)); registerGameEventListeners(); }
public void OnKeyUp(object sender, KeyEventArgs e) { e.Handled = true; switch (e.KeyCode) { case Keys.P: goto case Keys.Pause; case Keys.Pause: if (game.IsRunning || game.State == GameState.Paused) { eventManager.Queue(GameStateChangedEvent.To(GameState.Paused)); } break; case Keys.Escape: eventManager.Queue(GameStateChangedEvent.To(GameState.Menu)); break; // Debug Keys case Keys.F9: eventManager.Trigger(new DebugEvent(DebugEvent.DECREASE_SPEED)); break; case Keys.F10: eventManager.Trigger(new DebugEvent(DebugEvent.SINGLE_STEP)); break; case Keys.F11: eventManager.Trigger(new DebugEvent(DebugEvent.INCREASE_SPEED)); break; case Keys.F12: eventManager.Trigger(new DebugEvent(DebugEvent.RESET_SPEED)); break; default: e.Handled = false; break; } }
private void changeState(GameState newState) { GameState oldState = State; this.State = newState; switch (newState) { case GameState.StartUp: loadResources(); break; case GameState.Menu: if (oldState == GameState.Menu) { State = GameState.Running; EventManager.Queue(GameStateChangedEvent.To(GameState.Running)); } break; case GameState.Loading: reset(); initialize(); EventManager.Queue(GameStateChangedEvent.To(GameState.Running)); break; case GameState.Running: break; case GameState.Paused: if (oldState == GameState.Paused) { State = GameState.Running; EventManager.Queue(GameStateChangedEvent.To(GameState.Running)); } break; } }
private void QuitButton_Click(object sender, EventArgs e) { eventManager.Queue(GameStateChangedEvent.To(GameState.Quit)); }
private void CreditsButton_Click(object sender, EventArgs e) { eventManager.Queue(GameStateChangedEvent.To(GameState.Credits)); }
private void HighscoreButton_Click(object sender, EventArgs e) { eventManager.Queue(GameStateChangedEvent.To(GameState.Highscore)); }
private void NewGameButton_Click(object sender, EventArgs e) { eventManager.Queue(GameStateChangedEvent.To(GameState.Loading)); }
public void OnEvent(Event evt) { switch (evt.Type) { case NewEntityEvent.NEW_ENTITY: { var newEntityEvent = (NewEntityEvent)evt; Entity entity = Game.World.Entities[newEntityEvent.EntityID]; if (entity.Type.StartsWith("alien_")) { OnAttach(entity); } else if (entity.Type.Equals("mystery_ship")) { mysteryShip = entity; } break; } case DestroyEntityEvent.DESTROY_ENTITY: { var destroyEntityEvent = (DestroyEntityEvent)evt; Entity entity = Game.World.Entities[destroyEntityEvent.EntityID]; if (entity.Type.StartsWith("alien_")) { OnDetach(entity); } else if (entity.Type.Equals("mystery_ship")) { mysteryShip = null; } if (shooter != null && entity.ID == shooter.ID) { shooter = null; } break; } case GameStateChangedEvent.GAME_STATE_CHANGED: { var stateChangedEvent = (GameStateChangedEvent)evt; onGameStateChanged(stateChangedEvent.NewState); break; } case AiUpdateMovementEvent.AT_BORDER: { var aiMovementUpdateEvent = (AiUpdateMovementEvent)evt; Vector2D borderData = aiMovementUpdateEvent.BorderData; if (borderData.Y < 0) { // Victory for the Invaders! EventManager.Trigger(GameStateChangedEvent.To(GameState.GameOver)); } currentDirection.X = -borderData.X; currentDirection.Y = -1; movementDirectionChanged = true; break; } } }