Testing for the A key not pressed
Note that in these four tests, I used the logical not operator (!) to test for the arrow keys pressed but the A key not pressed . (I also could have called the IsKeyUp method instead of using the logical not operator for these tests.)
Dragging the ladybug objects with the mouse
Listing 10 shows the code required to drag the ladybug objects with the mouse.
Listing 10 . Moving the ladybug objects with the mouse.
//Get the state of the mouse.
MouseState mouseState = Mouse.GetState();//Press the left mouse button to move one ladybug.
if(mouseState.LeftButton == ButtonState.Pressed) {ladybugs[0].Position =new Vector2(mouseState.X,mouseState.Y);
}//end if//Press the right mouse button to move the other
// ladybug.if(mouseState.RightButton == ButtonState.Pressed) {
ladybugs[1].Position =
new Vector2(mouseState.X,mouseState.Y);}//end if
base.Update(gameTime);}//end Update method
Relatively simple code
The code in Listing 10 is used to drag one or the other of two ladybug objects with the mouse. As you can see from the amount of code involved,dragging the ladybug objects with the mouse is much simpler than moving them from the keyboard.
You can drag one of the ladybug objects by pressing the left mouse button and you can drag the other ladybug object by pressing the right mouse button. You can dragthem both, one on top of the other by pressing both mouse buttons at the same time.
Get the state of the mouse
As is the case with the keyboard, the code in Listing 10 polls the mouse once duringeach iteration of the game loop to determine its state.
Listing 10 begins by calling the GetState method of the Mouse class to get a reference to a MouseState object that describes the current state of the mouse.
A MouseState object
According to the documentation , a MouseState object
The object contains several properties including the following:
- LeftButton - Returns the state of the left mouse button as type ButtonState .
- RightButton - Returns the state of the right mouse button as type ButtonState .
- X - Specifies the horizontal position of the mouse cursor in pixels relative to the upper left corner of the game window.
- Y - Specifies the vertical position of the mouse cursor in pixels relative to the upper left corner of the game window.
The ButtonState enumeration
According to the documentation , ButtonState is an Enumeration that
It has the following members:
- Pressed - The button is pressed.
- Released - The button is released.
Test for a left mouse button pressed
The code in Listing 10 tests to determine if the left mouse button is pressed. If so, it sets the position of the ladybug objectreferred to by index [0] in the list of ladybugs to the current position of themouse pointer.
A change in ladybug position
This change in position becomes visible the next time the ladybug is drawn. This has the effect of causing the ladybug object to follow the mouse pointerthroughout the game window. It is even possible for the mouse to drag a ladybug outside the game window and leave it there.