Guest User

Untitled

a guest
Jul 17th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.46 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Microsoft.Xna.Framework;
  5. using Microsoft.Xna.Framework.Audio;
  6. using Microsoft.Xna.Framework.Content;
  7. using Microsoft.Xna.Framework.GamerServices;
  8. using Microsoft.Xna.Framework.Graphics;
  9. using Microsoft.Xna.Framework.Input;
  10. using Microsoft.Xna.Framework.Media;
  11.  
  12. namespace Maze
  13. {
  14.     class MouseHandler
  15.     {
  16.         Vector2 mousePosition = Vector2.Zero;
  17.         Vector2 pixelPosition = Vector2.Zero;
  18.         Boolean mouseOverSprite = false;
  19.         Boolean leftMouseClicked = false;
  20.         Boolean leftMouseDown;
  21.         Boolean rightMouseDown;
  22.        
  23.         /**
  24.          * Updates the object's copy of the mousestate
  25.          */
  26.         public void updateMouse()
  27.         {
  28.             MouseState mouseState = Mouse.GetState();
  29.  
  30.             mousePosition.X = mouseState.X;
  31.             mousePosition.Y = mouseState.Y;
  32.  
  33.         }
  34.        
  35.         /**
  36.          * Detects the mouseover of a sprite
  37.          */
  38.         public void onMouseOver(Vector2 pos, Texture2D text)
  39.         {
  40.             if ((mousePosition.X >= pos.X) && mousePosition.X <= (pos.X + text.Width) &&
  41.                     mousePosition.Y >= pos.Y && mousePosition.Y <= (pos.Y + text.Height))
  42.             {
  43.                 mouseOverSprite = true;
  44.             }
  45.             else
  46.             {
  47.                 mouseOverSprite = false;
  48.             }
  49.         }
  50.  
  51.         /**
  52.          * Detects a mouse click
  53.          */
  54.         public void checkMouseClick()
  55.         {
  56.             MouseState mouseState = Mouse.GetState();
  57.             if (mouseState.LeftButton == ButtonState.Pressed)
  58.             {
  59.                 leftMouseClicked = true;
  60.             }
  61.             else
  62.             {
  63.                 leftMouseClicked = false;
  64.             }
  65.         }
  66.  
  67.         /**
  68.          * Determines if the player is left clicking
  69.          */
  70.         public Boolean isLeftMouseDown()
  71.         {  
  72.             MouseState ms = Mouse.GetState();
  73.             if (ms.LeftButton == ButtonState.Pressed && leftMouseDown == false)
  74.             {
  75.                 leftMouseDown = true;
  76.                 return true;
  77.             }
  78.             else if (ms.LeftButton == ButtonState.Pressed && leftMouseDown == true)
  79.             {
  80.                 return false;
  81.             }
  82.             else if (ms.LeftButton == ButtonState.Released && leftMouseDown == true)
  83.             {
  84.                 leftMouseDown = false;
  85.                 return false;
  86.             }
  87.             return false;
  88.         }
  89.  
  90.         /**
  91.          * Determines if the player is right clicking
  92.          */
  93.         public Boolean isRightMouseDown()
  94.         {
  95.             MouseState ms = Mouse.GetState();
  96.             if (ms.RightButton == ButtonState.Pressed && rightMouseDown == false)
  97.             {
  98.                 rightMouseDown = true;
  99.                 return true;
  100.             }
  101.             else if (ms.RightButton == ButtonState.Pressed && rightMouseDown == true)
  102.             {
  103.                 return false;
  104.             }
  105.             else if (ms.RightButton == ButtonState.Released && rightMouseDown == true)
  106.             {
  107.                 rightMouseDown = false;
  108.                 return false;
  109.             }
  110.             return false;
  111.         }
  112.  
  113.         /**
  114.          * Gets data from a mouse click
  115.          */
  116.         public Vector2 getRightMouseClickData()
  117.         {
  118.             Vector2 data;
  119.             MouseState ms = Mouse.GetState();
  120.             if (ms.RightButton == ButtonState.Pressed || ms.RightButton == ButtonState.Pressed && !this.rightMouseDown)
  121.             {
  122.                 data.X = ms.X;
  123.                 data.Y = ms.Y;
  124.                 this.leftMouseDown = true;
  125.             }
  126.             else if (ms.RightButton == ButtonState.Released || ms.RightButton == ButtonState.Released && this.rightMouseDown)
  127.             {
  128.                 data.X = -1;
  129.                 data.Y = -1;
  130.                 this.rightMouseDown = false;
  131.             }
  132.             else
  133.             {
  134.                 data.X = -1;
  135.                 data.Y = -1;
  136.             }
  137.             return data;
  138.         }
  139.  
  140.         /**
  141.          * Gets data from a mouse click
  142.          */
  143.         public Vector2 getLeftMouseClickData()
  144.         {
  145.             Vector2 data;
  146.             MouseState ms = Mouse.GetState();
  147.             if (ms.LeftButton == ButtonState.Pressed || ms.RightButton == ButtonState.Pressed && !this.leftMouseDown)
  148.             {
  149.                 data.X = ms.X;
  150.                 data.Y = ms.Y;
  151.                 this.leftMouseDown = true;
  152.             }
  153.             else if (ms.LeftButton == ButtonState.Released || ms.RightButton == ButtonState.Released && this.leftMouseDown)
  154.             {
  155.                 data.X = -1;
  156.                 data.Y = -1;
  157.                 this.leftMouseDown = false;
  158.             }
  159.             else
  160.             {
  161.                 data.X = -1;
  162.                 data.Y = -1;
  163.             }
  164.             return data;
  165.         }
  166.  
  167.         /**
  168.          * Checks if a sprite was clicked within the position supplied
  169.          */
  170.         public Boolean spriteClicked(Texture2D sprite, Vector2 pos)
  171.         {
  172.             updateMouse();
  173.             checkMouseClick();
  174.             if (leftMouseClicked == true)
  175.             {
  176.                 onMouseOver(pos, sprite);
  177.                 if (mouseOverSprite == true)
  178.                 {
  179.                     return true;
  180.                 }
  181.             }
  182.             return false;
  183.         }
  184.     }
  185. }
Add Comment
Please, Sign In to add comment