Ejemplo n.º 1
0
 private void OnKeyboardActionPerformed(DXKeyboardEventArgs e)
 {
     if (this.keyboardActionPerformed != null)
     {
         this.keyboardActionPerformed(this, e);
     }
 }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        /// <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;
            }
        }