// Handelt de input van de speler af. public void HandleInput(GameTime gameTime, InputHelper inputHelper) { if (gameState == GameState.Playing) { // Laath het blokje met de klok mee draaien en controleert daarbij of het een kant of andere blokjes raakt. if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.E)) { tetrisBlock.Rotate(); if (tetrisBlock.BottomBounds()) { tetrisBlock.Rotate(false); } else { while (tetrisBlock.SideBounds()) { if (tetrisBlock.Position.X < 5) { tetrisBlock.Position += new Point(1, 0); } else { tetrisBlock.Position += new Point(-1, 0); } } } } // Laat het blokje tegen de klok in draaien en controleert daarbij of het een kant of andere blokjes raakt. if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.Q)) { tetrisBlock.Rotate(false); if (tetrisBlock.BottomBounds()) { tetrisBlock.Rotate(); } else { while (tetrisBlock.SideBounds()) { if (tetrisBlock.Position.X < 5) { tetrisBlock.Position += new Point(1, 0); } else { tetrisBlock.Position += new Point(-1, 0); } } } } // Beweegt het blokje naar links. if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.A)) { tetrisBlock.Position -= new Point(1, 0); if (tetrisBlock.SideBounds()) { tetrisBlock.Position += new Point(1, 0); } } // Beweegt het blokje naar rechts. if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.D)) { tetrisBlock.Position += new Point(1, 0); if (tetrisBlock.SideBounds()) { tetrisBlock.Position -= new Point(1, 0); } } // Beweegt het blokje een stap naar beneden. if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.S)) { MoveDown(); } // Beweegt het blokje in hoger tempo naar beneden als de S key ingedrukt gehouden wordt. if (inputHelper.KeyDown(Microsoft.Xna.Framework.Input.Keys.S)) { timePressed += gameTime.ElapsedGameTime.TotalMilliseconds; delay += (int)gameTime.ElapsedGameTime.TotalMilliseconds; if (timePressed >= 300 && delay >= 100) { MoveDown(); delay = 0; } if (!inputHelper.KeyDown(Microsoft.Xna.Framework.Input.Keys.S)) { timePressed = 0; } } } // Reset de game naar het menu. if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.R)) { Reset(); } // Sluit het spel af. if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.Escape)) { game.Quit(); } // Laat de speler kiezen tussen hard mode of easy mode in het begin scherm. if (gameState == GameState.Init) { mousePos = inputHelper.MousePosition; if (inputHelper.MouseLeftButtonPressed()) { gameState = GameState.Playing; if (mousePos.X < TetrisGame.ScreenSize.X / 2) { gameType = GameType.Normal; MediaPlayer.Play(normalTheme); nrBlocks = 7; dropSpeed = 1000; } else { gameType = GameType.Hard; MediaPlayer.Play(hardTheme); nrBlocks = 10; dropSpeed = 600; } //Twee keer ResetBlock om een nieuwe waarde voor block en nextblock te krijgen, die bij de goede gamemode hoort ResetBlock(); ResetBlock(); } } }