コード例 #1
0
ファイル: Input.cs プロジェクト: diqost/bullet
        void form_KeyUp(object sender, KeyEventArgs e)
        {
            Keys key = e.KeyData & ~Keys.Shift;

            KeysReleased.Add(key);
            KeysDown.Remove(key);
        }
コード例 #2
0
ファイル: Input.cs プロジェクト: diqost/bullet
 public void ClearKeyCache()
 {
     KeysPressed.Clear();
     KeysReleased.Clear();
     MousePressed    = MouseButtons.None;
     MouseReleased   = MouseButtons.None;
     MouseWheelDelta = 0;
 }
コード例 #3
0
ファイル: Input.cs プロジェクト: diqost/bullet
 public void ClearKeyCache()
 {
     KeysPressed.Clear();
     KeysReleased.Clear();
     MousePressed    = MouseButtonFlags.None;
     MouseWheelDelta = 0;
     _mouseDelta.X   = 0;
     _mouseDelta.Y   = 0;
 }
コード例 #4
0
        /// <summary>
        /// Handles keyboard input.
        /// </summary>
        /// <param name="clickData"></param>
        /// <param name="time"></param>
        public static void UpdateKeyboardInput(GameTime time)
        {
            GetChanges(out List <Keys> pressed, out List <Keys> down, out List <Keys> released);

            if (pressed.Count > 0)
            {
                int length = pressed.Count;
                for (int i = 0; i < length; i++)
                {
                    KeysPressed?.Invoke(null, pressed[i]);
                }
            }

            if (down.Count > 0)
            {
                int length = down.Count;
                for (int i = 0; i < length; i++)
                {
                    KeysDown?.Invoke(null, down[i]);
                }
            }

            if (released.Count > 0)
            {
                int length = released.Count;
                for (int i = 0; i < length; i++)
                {
                    KeysReleased?.Invoke(null, released[i]);
                }
            }

            KeyboardState keyboardState = Keyboard.GetState();

            Modifiers = KeyboardModifiers.None;

            if (keyboardState.IsKeyDown(Keys.LeftControl) || keyboardState.IsKeyDown(Keys.RightControl))
            {
                Modifiers |= KeyboardModifiers.Control;
            }

            if (keyboardState.IsKeyDown(Keys.LeftShift) || keyboardState.IsKeyDown(Keys.RightShift))
            {
                Modifiers |= KeyboardModifiers.Shift;
            }

            if (keyboardState.IsKeyDown(Keys.LeftAlt) || keyboardState.IsKeyDown(Keys.RightAlt))
            {
                Modifiers |= KeyboardModifiers.Alt;
            }
        }
コード例 #5
0
ファイル: Input.cs プロジェクト: diqost/bullet
 public void Device_KeyboardInput(object sender, KeyboardInputEventArgs e)
 {
     if (e.State == KeyState.Pressed)
     {
         if (KeysDown.Contains(e.Key) == false)
         {
             KeysPressed.Add(e.Key);
             KeysDown.Add(e.Key);
         }
     }
     else if (e.State == KeyState.Released)
     {
         KeysReleased.Add(e.Key);
         KeysDown.Remove(e.Key);
     }
 }
コード例 #6
0
ファイル: InputManager.cs プロジェクト: fnatte/TowerDefence
 public void Update(GameTime gameTime)
 {
     MouseReleased = MouseButtons.None;
     KeysReleased.Clear();
 }