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 }