private void OnKeyboardActionPerformed(DXKeyboardEventArgs e) { if (this.keyboardActionPerformed != null) { this.keyboardActionPerformed(this, e); } }
private void ProcessKeyboardDevice() { bool loop = true; do { try { this.keyboard.Poll(); loop = false; } catch (InputLostException) { this.keyboard.Acquire(); this.keyboard.Poll(); this.keyboardState = this.keyboard.CurrentKeyboardState; } catch (Exception) { loop = false; throw; } } while (loop); KeyboardState state = this.keyboard.CurrentKeyboardState; DXKeyboardEventArgs args = GetKeyboardEventData(state); if (args != null) { OnKeyboardActionPerformed(args); } this.keyboardState = state; }
private DXKeyboardEventArgs GetKeyboardEventData(KeyboardState keyStates) { DXKeyboardEventArgs eventArgs = null; for (Key k = Key.Escape; k <= Key.MediaSelect; k++) { if (keyStates[k]) { if (keyStates[k]) { eventArgs = new DXKeyboardEventArgs(keyStates, KeyboardAction.KeyPress, k); } else { eventArgs = new DXKeyboardEventArgs(keyStates, KeyboardAction.KeyUp, k); } } } return(eventArgs); }
/// <summary> /// Handles the user pressing a key in the control. /// </summary> /// <param name="kea"></param> protected override void OnKeyPress(DXKeyboardEventArgs e) { GameRoot root = GameRoot.Instance; base.OnKeyPress(e); MoveResult result = MoveResult.MoveSuccess; if (e.KeyboardState[Key.Up]) { result = root.ActiveUnit.MoveTo(root.ActiveUnit.Coordinates); } else if (e.KeyboardState[Key.Down]) { result = root.ActiveUnit.MoveTo(root.ActiveUnit.Coordinates); } else if (e.KeyboardState[Key.Left]) { result = root.ActiveUnit.MoveTo(root.ActiveUnit.Coordinates); } else if (e.KeyboardState[Key.Right]) { result = root.ActiveUnit.MoveTo(root.ActiveUnit.Coordinates); } else if (e.KeyboardState[Key.NumPad7]) { result = root.ActiveUnit.MoveTo(root.ActiveUnit.Coordinates); } else if (e.KeyboardState[Key.Home]) { result = root.ActiveUnit.MoveTo(root.ActiveUnit.Coordinates); } else if (e.KeyboardState[Key.PageDown]) { result = root.ActiveUnit.MoveTo(root.ActiveUnit.Coordinates); } else if (e.KeyboardState[Key.End]) { result = root.ActiveUnit.MoveTo(root.ActiveUnit.Coordinates); } else if (e.KeyboardState[Key.S]) { ((Settler)root.ActiveUnit).Settle(string.Empty); } else if (e.KeyboardState[Key.Space]) { root.ActivateNextUnit(); } switch (result) { case MoveResult.CellTaken: break; case MoveResult.Killed: break; case MoveResult.MoveSuccess: if (root.ActiveUnit != null) { if (root.ActiveUnit.MovesLeft == 0) { root.ActivateNextUnit(); } } break; case MoveResult.UnreachableTerrain: break; case MoveResult.UnresolvedCombat: break; } }