• Main Page
  • Packages
  • Classes
  • Files
  • File List

C:/Doug/CSharp/XnaCollisionLib/XnaCollisionLib/Utils/Input.cs

Go to the documentation of this file.
00001 using System;
00002 using Microsoft.Xna.Framework;
00003 using Microsoft.Xna.Framework.Input;
00004 
00005 namespace XnaCollisionLib.Utils
00006 {
00007     public class Input
00008     {
00009         private KeyboardState _LastKeyboardState;
00010         private MouseState _LastMouseState;
00011         private Vector2 _Delta;
00012 
00013         public Input()
00014         {
00015             Mouse.SetPosition(400, 300);
00016             ResetMouseOnUpdate = true;
00017 
00018             _LastKeyboardState = Keyboard.GetState();
00019             _LastMouseState = Mouse.GetState();
00020             _Delta = new Vector2(0, 0);
00021         }
00022 
00023         public bool ResetMouseOnUpdate
00024         {
00025             get;
00026             set;
00027         }
00028 
00029         public Vector2 Delta
00030         {
00031             get { return _Delta; }
00032         }
00033 
00034         public Vector2 Location
00035         {
00036             get
00037             {
00038                 MouseState mouseState = Mouse.GetState();
00039 
00040                 return new Vector2(mouseState.X, mouseState.Y);
00041             }
00042         }
00043 
00044         public bool IsKeyPressed(Keys key)
00045         {
00046             KeyboardState keyboardState = Keyboard.GetState();
00047 
00048             return keyboardState.IsKeyDown(key) && !_LastKeyboardState.IsKeyDown(key);
00049         }
00050 
00051         public bool IsKeyDown(Keys key)
00052         {
00053             return Keyboard.GetState().IsKeyDown(key);
00054         }
00055 
00056         public bool IsButtonDown(int button)
00057         {
00058             MouseState mouseState = Mouse.GetState();
00059 
00060             if (button == 0)
00061                 return mouseState.LeftButton == ButtonState.Pressed;
00062             else if (button == 1)
00063                 return mouseState.MiddleButton == ButtonState.Pressed;
00064             else
00065                 return mouseState.RightButton == ButtonState.Pressed;
00066         }
00067 
00068         public void Update()
00069         {
00070             MouseState mouseState = Mouse.GetState();
00071 
00072             if (ResetMouseOnUpdate)
00073             {
00074                 _Delta = new Vector2(400 - mouseState.X, 300 - mouseState.Y);
00075                 Mouse.SetPosition(400, 300);
00076             }
00077             else
00078             {
00079                 Vector2 a, b;
00080 
00081                 a.X = mouseState.X;
00082                 a.Y = mouseState.Y;
00083                 b.X = _LastMouseState.X;
00084                 b.Y = _LastMouseState.Y;
00085 
00086                 _Delta = a - b;
00087             }
00088 
00089             _LastKeyboardState = Keyboard.GetState();
00090             _LastMouseState = mouseState;
00091         }
00092     }
00093 }

Generated on Thu Jul 15 2010 19:56:39 for XnaCollisionLib by  doxygen 1.7.0