<< Chapter < Page
  Xna game studio     Page 10 / 13
Chapter >> Page >

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

"Represents the state of a mouse input device, including mouse cursor position and buttons pressed."

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

"Identifies the state of a mouse button or Xbox 360 Controller button."

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.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Xna game studio. OpenStax CNX. Feb 28, 2014 Download for free at https://legacy.cnx.org/content/col11634/1.6
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Xna game studio' conversation and receive update notifications?

Ask