Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using Microsoft.Xna.Framework;
- using Microsoft.Xna.Framework.Audio;
- using Microsoft.Xna.Framework.Content;
- using Microsoft.Xna.Framework.GamerServices;
- using Microsoft.Xna.Framework.Graphics;
- using Microsoft.Xna.Framework.Input;
- using Microsoft.Xna.Framework.Media;
- namespace Maze
- {
- class MouseHandler
- {
- Vector2 mousePosition = Vector2.Zero;
- Vector2 pixelPosition = Vector2.Zero;
- Boolean mouseOverSprite = false;
- Boolean leftMouseClicked = false;
- Boolean leftMouseDown;
- Boolean rightMouseDown;
- /**
- * Updates the object's copy of the mousestate
- */
- public void updateMouse()
- {
- MouseState mouseState = Mouse.GetState();
- mousePosition.X = mouseState.X;
- mousePosition.Y = mouseState.Y;
- }
- /**
- * Detects the mouseover of a sprite
- */
- public void onMouseOver(Vector2 pos, Texture2D text)
- {
- if ((mousePosition.X >= pos.X) && mousePosition.X <= (pos.X + text.Width) &&
- mousePosition.Y >= pos.Y && mousePosition.Y <= (pos.Y + text.Height))
- {
- mouseOverSprite = true;
- }
- else
- {
- mouseOverSprite = false;
- }
- }
- /**
- * Detects a mouse click
- */
- public void checkMouseClick()
- {
- MouseState mouseState = Mouse.GetState();
- if (mouseState.LeftButton == ButtonState.Pressed)
- {
- leftMouseClicked = true;
- }
- else
- {
- leftMouseClicked = false;
- }
- }
- /**
- * Determines if the player is left clicking
- */
- public Boolean isLeftMouseDown()
- {
- MouseState ms = Mouse.GetState();
- if (ms.LeftButton == ButtonState.Pressed && leftMouseDown == false)
- {
- leftMouseDown = true;
- return true;
- }
- else if (ms.LeftButton == ButtonState.Pressed && leftMouseDown == true)
- {
- return false;
- }
- else if (ms.LeftButton == ButtonState.Released && leftMouseDown == true)
- {
- leftMouseDown = false;
- return false;
- }
- return false;
- }
- /**
- * Determines if the player is right clicking
- */
- public Boolean isRightMouseDown()
- {
- MouseState ms = Mouse.GetState();
- if (ms.RightButton == ButtonState.Pressed && rightMouseDown == false)
- {
- rightMouseDown = true;
- return true;
- }
- else if (ms.RightButton == ButtonState.Pressed && rightMouseDown == true)
- {
- return false;
- }
- else if (ms.RightButton == ButtonState.Released && rightMouseDown == true)
- {
- rightMouseDown = false;
- return false;
- }
- return false;
- }
- /**
- * Gets data from a mouse click
- */
- public Vector2 getRightMouseClickData()
- {
- Vector2 data;
- MouseState ms = Mouse.GetState();
- if (ms.RightButton == ButtonState.Pressed || ms.RightButton == ButtonState.Pressed && !this.rightMouseDown)
- {
- data.X = ms.X;
- data.Y = ms.Y;
- this.leftMouseDown = true;
- }
- else if (ms.RightButton == ButtonState.Released || ms.RightButton == ButtonState.Released && this.rightMouseDown)
- {
- data.X = -1;
- data.Y = -1;
- this.rightMouseDown = false;
- }
- else
- {
- data.X = -1;
- data.Y = -1;
- }
- return data;
- }
- /**
- * Gets data from a mouse click
- */
- public Vector2 getLeftMouseClickData()
- {
- Vector2 data;
- MouseState ms = Mouse.GetState();
- if (ms.LeftButton == ButtonState.Pressed || ms.RightButton == ButtonState.Pressed && !this.leftMouseDown)
- {
- data.X = ms.X;
- data.Y = ms.Y;
- this.leftMouseDown = true;
- }
- else if (ms.LeftButton == ButtonState.Released || ms.RightButton == ButtonState.Released && this.leftMouseDown)
- {
- data.X = -1;
- data.Y = -1;
- this.leftMouseDown = false;
- }
- else
- {
- data.X = -1;
- data.Y = -1;
- }
- return data;
- }
- /**
- * Checks if a sprite was clicked within the position supplied
- */
- public Boolean spriteClicked(Texture2D sprite, Vector2 pos)
- {
- updateMouse();
- checkMouseClick();
- if (leftMouseClicked == true)
- {
- onMouseOver(pos, sprite);
- if (mouseOverSprite == true)
- {
- return true;
- }
- }
- return false;
- }
- }
- }
Add Comment
Please, Sign In to add comment