예제 #1
0
 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;
         }
     }
 }
예제 #2
0
        /// <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();
                    }
                }
            }
        }