void form_KeyUp(object sender, KeyEventArgs e) { Keys key = e.KeyData & ~Keys.Shift; KeysReleased.Add(key); KeysDown.Remove(key); }
public void ClearKeyCache() { KeysPressed.Clear(); KeysReleased.Clear(); MousePressed = MouseButtons.None; MouseReleased = MouseButtons.None; MouseWheelDelta = 0; }
public void ClearKeyCache() { KeysPressed.Clear(); KeysReleased.Clear(); MousePressed = MouseButtonFlags.None; MouseWheelDelta = 0; _mouseDelta.X = 0; _mouseDelta.Y = 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; } }
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); } }
public void Update(GameTime gameTime) { MouseReleased = MouseButtons.None; KeysReleased.Clear(); }