Difference between revisions of "Mouse or touch control Input"

From TRCCompSci - AQA Computer Science
Jump to: navigation, search
Line 1: Line 1:
 
This page is to document how to you can handle mouse and touch input. You could essentially program all inputs within your player movement code. The page about the keyboard input is: [[Adding and Processing Player Input]].
 
This page is to document how to you can handle mouse and touch input. You could essentially program all inputs within your player movement code. The page about the keyboard input is: [[Adding and Processing Player Input]].
  
==Adding GamePad Control==
+
=Adding GamePad 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 (you may already have this if you have already coded the keyboard input):
 +
 
 +
<syntaxhighlight lang=csharp>
 +
// Gamepad states used to determine button presses
 +
GamePadState currentGamePadState;
 +
GamePadState previousGamePadState;
 +
 
 +
// A movement speed for the player
 +
float playerMoveSpeed;
 +
</syntaxhighlight>
 +
 
 +
Now find the Initialize method within the Game1.cs file. You need to add the line below to set the movement speed:
 +
 
 +
<syntaxhighlight lang=csharp>
 +
// Set a constant player move speed
 +
playerMoveSpeed = 8.0f;
 +
</syntaxhighlight>
 +
 
 +
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. If you haven't already created the UpdatePlayer method, create the UpdatePlayer method and call it from Update, see below:
 +
 
 +
[[File:Update player.png]]
 +
 
 +
==Reading the GamePad and Move==
 +
Now in the UpdatePlayer method add the code to detect left\right & up\down movement:
 +
 
 +
<syntaxhighlight lang=csharp>
 +
player.Position.X += currentGamePadState.ThumbSticks.Left.X * playerMoveSpeed;
 +
player.Position.Y -= currentGamePadState.ThumbSticks.Left.Y * playerMoveSpeed;
 +
</syntaxhighlight>
 +
 
 +
Now, back in the Update method add the following lines to listen to the keyboard. Enter them just before we call UpdatePlayer:
 +
 
 +
<syntaxhighlight lang=csharp>
 +
// Save the previous state of the  game pad so we can determine single movement
 +
previousGamePadState = currentGamePadState;;
 +
 
 +
// Read the current state of the gamepad and store it
 +
currentGamePadState = GamePad.GetState(PlayerIndex.One);
 +
</syntaxhighlight>
 +
 
 +
=Adding Touch 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 (you may already have this if you have already coded the keyboard input):
 
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 (you may already have this if you have already coded the keyboard input):
  

Revision as of 15:00, 28 March 2017

This page is to document how to you can handle mouse and touch input. You could essentially program all inputs within your player movement code. The page about the keyboard input is: Adding and Processing Player Input.

Adding GamePad 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 (you may already have this if you have already coded the keyboard input):

// Gamepad states used to determine button presses
GamePadState currentGamePadState;
GamePadState previousGamePadState;

// A movement speed for the player
float playerMoveSpeed;

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;

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. If you haven't already created the UpdatePlayer method, create the UpdatePlayer method and call it from Update, see below:

Update player.png

Reading the GamePad and Move

Now in the UpdatePlayer method add the code to detect left\right & up\down movement:

player.Position.X += currentGamePadState.ThumbSticks.Left.X * playerMoveSpeed;
player.Position.Y -= currentGamePadState.ThumbSticks.Left.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  game pad so we can determine single movement
previousGamePadState = currentGamePadState;;

// Read the current state of the gamepad and store it
currentGamePadState = GamePad.GetState(PlayerIndex.One);

Adding Touch 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 (you may already have this if you have already coded the keyboard input):

// Gamepad states used to determine button presses
GamePadState currentGamePadState;
GamePadState previousGamePadState;

// A movement speed for the player
float playerMoveSpeed;

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;

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. If you haven't already created the UpdatePlayer method, create the UpdatePlayer method and call it from Update, see below:

Update player.png

Reading the GamePad and Move

Now in the UpdatePlayer method add the code to detect left\right & up\down movement:

player.Position.X += currentGamePadState.ThumbSticks.Left.X * playerMoveSpeed;
player.Position.Y -= currentGamePadState.ThumbSticks.Left.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  game pad so we can determine single movement
previousGamePadState = currentGamePadState;;

// Read the current state of the gamepad and store it
currentGamePadState = GamePad.GetState(PlayerIndex.One);