Advertisement
Guest User

Untitled

a guest
May 26th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.87 KB | None | 0 0
  1.         protected void HandleInput()
  2.         {
  3.             HandleKeyboard();
  4.             HandleMouse();
  5.         }
  6.  
  7.         protected void HandleKeyboard()
  8.         {
  9.             List<Keys> pressedKeys = new List<Keys>(Keyboard.GetState().GetPressedKeys());
  10.  
  11.             foreach( var key in pressedKeys )
  12.             {
  13.                 if( m_holdedKeys.Contains( key ) )
  14.                    OnKeyHold( key );
  15.                 else
  16.                 {
  17.                     OnKeyPressed(key);
  18.                     m_holdedKeys.Add( key );
  19.                 }
  20.             }
  21.            
  22.             foreach( var key in m_holdedKeys )
  23.                 if( !pressedKeys.Contains( key ) )
  24.                     OnKeyReleased( key );
  25.  
  26.             m_holdedKeys.RemoveAll( key => !pressedKeys.Contains( key ) );
  27.         }
  28.  
  29.         protected void HandleMouse()
  30.         {
  31.             MouseState currState = Mouse.GetState();
  32.             Vector2 movement = currState.Position.ToVector2();
  33.             if(m_prevMouseState.LeftButton == ButtonState.Pressed &&
  34.                currState.LeftButton == ButtonState.Pressed)
  35.             {
  36.  
  37.                 movement -= m_prevMouseState.Position.ToVector2();
  38.                 OnMouseHold(currState.Position.ToVector2(),movement);
  39.             }
  40.             else if(m_prevMouseState.LeftButton == ButtonState.Pressed &&
  41.                currState.LeftButton != ButtonState.Pressed)
  42.             {
  43.                 movement -= m_pressedMousePos;
  44.                 OnMouseReleased(currState.Position.ToVector2(),movement);
  45.             }
  46.             else if( currState.LeftButton == ButtonState.Pressed)
  47.             {
  48.                 OnMousePressed(currState.Position.ToVector2());
  49.             }
  50.             m_prevMouseState = Mouse.GetState();
  51.         }
  52.  
  53.         protected void OnKeyPressed( Keys pressedKey )
  54.         {
  55.             switch( pressedKey )
  56.             {
  57.                 case Keys.Escape:
  58.                     Exit();
  59.                     break;
  60.                 default:
  61.                     break;
  62.  
  63.             }
  64.         }
  65.  
  66.         protected void OnKeyHold( Keys holdedKey )
  67.         {
  68.             switch( holdedKey )
  69.             {
  70.                 case Keys.D:
  71.                     test.Move(new Vector2(5,0));
  72.                     break;
  73.                 case Keys.A:
  74.                     test.Move(new Vector2(-5,0));
  75.                     break;
  76.                 default:
  77.                     break;
  78.  
  79.             }
  80.         }
  81.  
  82.         protected void OnKeyReleased( Keys releasedKey )
  83.         {
  84.  
  85.         }
  86.  
  87.         protected void OnMousePressed(Vector2 mousePos )
  88.         {
  89.             m_pressedMousePos = mousePos;
  90.         }
  91.  
  92.         protected void OnMouseHold(Vector2 mousePos, Vector2 movement )
  93.         {
  94.  
  95.         }
  96.  
  97.         protected void OnMouseReleased(Vector2 mousePos, Vector2 movement )
  98.         {
  99.            
  100.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement