Пример #1
0
        public InputSystem()
        {
            Keyboard = new KeyboardHandler();
            GamePad  = new GamePadHandler();
            Mouse    = new MouseHandler();

            _pressedDirectionDelay = FULL_PRESSED_DIRECTION_DELAY;
        }
Пример #2
0
        public InputSystem()
        {
            Keyboard = new KeyboardHandler();
            GamePad = new GamePadHandler();
            Mouse = new MouseHandler();

            _pressedDirectionDelay = FULL_PRESSED_DIRECTION_DELAY;
        }
Пример #3
0
        public void Update(KeyboardHandler keyboard, float elapsedTime)
        {
            if (keyboard.IsKeyDownOnce(Keys.Back) && CurrentText.Length > 0)
            {
                CurrentText = CurrentText.Substring(0, CurrentText.Length - 1);
            }
            else if (CurrentText.Length < MaxInputCharacters)
            {
                var allPressedKeys = keyboard.GetPressedKeys();

                var allValidPressedKeys = allPressedKeys.Where(k => _validCharacterCodes.Contains(k.ToString())).ToArray();
                foreach (var pressedKey in allValidPressedKeys)
                {
                    if (_lastPressedKeys.Contains(pressedKey)) continue;
                    _lastPressedKeys.Add(pressedKey);

                    var pressed = pressedKey.ToString();

                    if (!IsAnyShiftKeyDown(keyboard)) pressed = pressed.ToLower();

                    if (pressed.Equals("space"))
                    {
                        pressed = " ";
                    }
                    else if (pressed.Length == 2 && pressed[0] == 'd')
                    {
                        pressed = pressed.Substring(1);
                    }

                    if (InputType == InputType.Numeric && pressed == "d") break;

                    if (pressedKey == Keys.OemPeriod)
                    {
                        CurrentText += ".";
                    }
                    else
                    {
                        CurrentText += pressed;
                    }
                }

                _lastPressedKeys.Clear();
                _lastPressedKeys.AddRange(allValidPressedKeys);
            }
        }
Пример #4
0
 private static bool IsAnyShiftKeyDown(KeyboardHandler keyboard)
 {
     return keyboard.IsKeyDownOnce(Keys.RightShift) || keyboard.IsKeyDown(Keys.LeftShift);
 }