private void OnMenuControl(object source, KeyboardKeyEventArgs args) { if (activeState.Equals(GameState.MAINMENU)) { switch (activeState = m.GetStateByKey(args)) { case GameState.SINGLEPL: player = new LocalPlayer(); level = new Level(new Map(MapGenerator.GenerateMap(GameMode.Mode.CLASSIC))); level.AddTank(player, AbstractTank.Type.PlayerNormal, (int)(-windowWidth / 2 + gameRenderer.ElementWidth * 7), (int)(windowHeight / 2 - 19 * gameRenderer.ElementHeight), Texture.Rotation.Top); Keyboard.KeyUp += player.KeyUpEventHandler; Keyboard.KeyDown += player.KeyDownEventHandler; break; case GameState.EXIT: Exit(); break; } } }
/// <summary> /// Called when it is time to setup the next frame. /// </summary> /// <param name="e">Contains timing information for framerate independent logic.</param> protected override void OnUpdateFrame(FrameEventArgs e) { base.OnUpdateFrame(e); //GameLogic gameplay = new GameLogic(); //gameplay.AddPlayer(player); if (activeState.Equals(GameState.SINGLEPL)) { if (Keyboard[Key.Q]) { level = new Level(new Map(MapGenerator.GenerateMap(GameMode.Mode.CLASSIC))); level.AddTank(player, AbstractTank.Type.PlayerFast, (int)(-windowWidth / 2 + gameRenderer.ElementWidth * 7), (int)(windowHeight / 2 - 19 * gameRenderer.ElementHeight), Texture.Rotation.Top); } if (Keyboard[Key.W]) { level = new Level(new Map(MapGenerator.GenerateMap(GameMode.Mode.DM))); //level.AddTank(player, AbstractTank.Type.PlayerNormal, (int)(-windowWidth / 2 + gameRenderer.ElementWidth * 7), (int)(windowHeight / 2 - 19 * gameRenderer.ElementHeight)); } if (Keyboard[Key.E]) { level = new Level(new Map(MapGenerator.GenerateMap(GameMode.Mode.TDMB))); //level.AddTank(player, AbstractTank.Type.PlayerNormal, (int)(-windowWidth / 2 + gameRenderer.ElementWidth * 7), (int)(windowHeight / 2 - 19 * gameRenderer.ElementHeight)); } if (Keyboard[Key.R]) { level = new Level(new Map(MapGenerator.GenerateMap(GameMode.Mode.TDM))); //level.AddTank(player, AbstractTank.Type.PlayerNormal, (int)(-windowWidth / 2 + gameRenderer.ElementWidth * 7), (int)(windowHeight / 2 - 19 * gameRenderer.ElementHeight)); } if (Keyboard[Key.Space]) { } if (player.tank.IsUpState) { player.tank.Rotate(Texture.Rotation.Top); if (gameRenderer.TankCanMove(level, player.tank, Texture.Rotation.Top)) { player.tank.MoveUp(); } } else if (player.tank.IsDownState) { player.tank.Rotate(Texture.Rotation.Bottom); if (gameRenderer.TankCanMove(level, player.tank, Texture.Rotation.Bottom)) { player.tank.MoveDown(); } } else if (player.tank.IsRightState) { player.tank.Rotate(Texture.Rotation.Right); if (gameRenderer.TankCanMove(level, player.tank, Texture.Rotation.Right)) { player.tank.MoveRight(); } } else if (player.tank.IsLeftState) { player.tank.Rotate(Texture.Rotation.Left); if (gameRenderer.TankCanMove(level, player.tank, Texture.Rotation.Left)) { player.tank.MoveLeft(); } } } }