Difference between revisions of "Keyboard Input"
(→Reading the Key and Move) |
(→Reading the Key and Move) |
||
Line 65: | Line 65: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | ==Using Position== | |
+ | Obviously we are changing Position, so we need to draw a texture to the screen at Position to actually see the movement working. |
Revision as of 14:53, 6 June 2018
Adding Keyboard Control
With in the Game1.cs file, find the the Game1 class and find the line Player player; . After this line enter the following, this will be used to save the current and previous keyboard state and to also control the speed of movement:
// Keyboard states used to determine key presses
KeyboardState currentKeyboardState;
KeyboardState previousKeyboardState;
// A movement speed for the player
float playerMoveSpeed;
Vector2 Position;
Now find the Initialize method within the Game1.cs file. You need to add the line below to set the movement speed:
// Set a constant player move speed
playerMoveSpeed = 8.0f;
Position = new Vector2(0,0);
The Update method within the Game1.cs file is used while the game is running. In order to make this easy to understand and read, we will create a new method to update the player and call it from the Update method. Create the UpdatePlayer method and call it from Update, see below:
Reading the Key and Move
Now in the UpdatePlayer method add the code to detect left and right movement:
if (currentKeyboardState.IsKeyDown(Keys.Left))
{
Position.X -= playerMoveSpeed;
}
if (currentKeyboardState.IsKeyDown(Keys.Right))
{
Position.X += playerMoveSpeed;
}
To handle the Up and Down movement you can adapt the code above to:
if (currentKeyboardState.IsKeyDown(Keys.Up))
{
Position.Y -= playerMoveSpeed;
}
if (currentKeyboardState.IsKeyDown(Keys.Down))
{
Position.Y += playerMoveSpeed;
}
Now, back in the Update method add the following lines to listen to the keyboard. Enter them just before we call UpdatePlayer:
// Save the previous state of the keyboard so we can determine single key presses
previousKeyboardState = currentKeyboardState;
// Read the current state of the keyboard and store it
currentKeyboardState = Keyboard.GetState();
UpdatePlayer(currentKeyboardState);
Using Position
Obviously we are changing Position, so we need to draw a texture to the screen at Position to actually see the movement working.