示例#1
0
        protected override void UpdateScreen(GameTime gameTime)
        {
            if (MenuState == MenuState.Normal)
            {
                if (_menuEntries.Count == 0)
                {
                    return;
                }

                if (_menuEntries[_selectedEntry].State != MenuEntry.EntryState.Highlight)
                {
                    _menuEntries[_selectedEntry].Highlight();
                }

                for (int i = 0; i < _menuEntries.Count; i++)
                {
                    _menuEntries[i].UpdateEntry(gameTime);
                    _menuEntries[_selectedEntry].AnimateHighlighted(gameTime);
                }

                if (MouseTexture != null)
                {
                    Vector2 mousePos = InputMap.GetMousePosition();
                    MouseBounds = new Rectangle((int)mousePos.X, (int)mousePos.Y, MouseTexture.Width, MouseTexture.Height);
                }
            }
            else if (MenuState == MenuState.ActivatingSubmenu)
            {
                ActivateSubmenu();
            }
            else
            {
                Restore();
            }
        }
示例#2
0
 private void DrawMouse(SpriteBatch spriteBatch, GameTime gameTime)
 {
     if (MouseTexture != null && _mouseVisible)
     {
         spriteBatch.Draw(MouseTexture, InputMap.GetMousePosition(), Color.White);
     }
 }
示例#3
0
        public void Initialize()
        {
            if (_isInitialized)
            {
                return;
            }

            InputMap       = new InputMap();
            _isInitialized = true;
        }
示例#4
0
        public override void HandleInput()
        {
            if (MenuState != MenuState.Normal || _transitioning)
            {
                return;
            }

            if (InputMap.NewActionPress(PreviousEntryActionName))
            {
                _menuEntries[_selectedEntry].Normal();
                _selectedEntry--;
                if (_selectedEntry < 0)
                {
                    _selectedEntry = _menuEntries.Count - 1;
                }
                _menuEntries[_selectedEntry].Highlight();
            }

            if (InputMap.NewActionPress(NextEntryActionName))
            {
                _menuEntries[_selectedEntry].Normal();
                _selectedEntry++;
                if (_selectedEntry >= _menuEntries.Count)
                {
                    _selectedEntry = 0;
                }
                _menuEntries[_selectedEntry].Highlight();
            }

            if (MouseTexture != null && _mouseVisible)
            {
                for (int i = _menuEntries.Count - 1; i >= 0; i--)
                {
                    if (_menuEntries[i].BoundingRectangle.Intersects(MouseBounds))
                    {
                        _menuEntries[_selectedEntry].Normal();
                        _selectedEntry = i;
                        _menuEntries[_selectedEntry].Highlight();
                    }
                }
            }

            if (InputMap.NewActionPress(SelectedEntryActionName))
            {
                _menuEntries[_selectedEntry].Select();
            }

            if (InputMap.NewActionPress(MenuCancelActionName))
            {
                MenuCancel();
            }
        }
示例#5
0
 protected InputDevice(InputMap <TDeviceKeyType> keyMap, Scene scene)
 {
     KeyMap = keyMap;
     scene.AddObject(this);
 }
示例#6
0
 public XNAKeyboardInputDevice(InputMap <Keys> inputMap, InputKey left, InputKey right, InputKey up, InputKey down, Scene scene) : base(inputMap, scene)
 {
     dPad = new DPad(this, left, right, up, down);
 }
示例#7
0
 public XNAMouseInputDevice(InputMap <MouseButton> inputMap, Scene scene) : base(inputMap, scene)
 {
 }
示例#8
0
        public void Initialize()
        {
            if (_isInitialized)
            {
                return;
            }

            InputMap = new InputMap();
            _isInitialized = true;
        }