GetState() public static method

public static GetState ( ) : Microsoft.Xna.Framework.Input.MouseState
return Microsoft.Xna.Framework.Input.MouseState
コード例 #1
0
        protected override void Update(GameTime gameTime)
        {
            base.Update(gameTime);

            var mState = XnaMouse.GetState();

            // Save the mouse position...
            this.Position = mState.Position.ToVector2();

            // Update the mouse button states...
            this[MouseButton.Left].TrySetState(mState.LeftButton);
            this[MouseButton.Middle].TrySetState(mState.MiddleButton);
            this[MouseButton.Right].TrySetState(mState.RightButton);

            if (this.ScrollWheelValue != mState.ScrollWheelValue)
            { // If the scroll value has been updated...
                _oldScrollWheelValue  = this.ScrollWheelValue;
                this.ScrollWheelValue = mState.ScrollWheelValue;

                this.OnScrollWheelValueChanged?.Invoke(
                    sender: this,
                    args: new ScrollWheelArgs(
                        value: this.ScrollWheelValue,
                        delta: this.ScrollWheelValue - _oldScrollWheelValue));
            }
        }
コード例 #2
0
        public override void Update(IEnumerable <Entity> entities)
        {
            MouseState newState = NativeMouse.GetState();

            UpdateValuesFromState(ref newState);
            base.Update(entities);
        }
コード例 #3
0
        /** <summary> Called every step to update the mouse button states. </summary> */
        public static void Update(GameTime gameTime, Vector2F mouseOffset)
        {
            // Update each of the buttons
            UpdateButton(1, MouseButtons.None, ButtonState.Released);
            UpdateButton(1, MouseButtons.Left, XnaMouse.GetState().LeftButton);
            UpdateButton(1, MouseButtons.Middle, XnaMouse.GetState().MiddleButton);
            UpdateButton(1, MouseButtons.Right, XnaMouse.GetState().RightButton);
            UpdateButton(1, MouseButtons.XButton1, XnaMouse.GetState().XButton1);
            UpdateButton(1, MouseButtons.XButton2, XnaMouse.GetState().XButton2);

            for (int i = 0; i < NumButtons; i++)
            {
                rawButtonDoubleClick[i] = false;
                rawButtonClick[i]       = false;
            }

            int rawWheelDeltaLast = rawWheelDelta;

            rawWheelDelta = XnaMouse.GetState().ScrollWheelValue;
            if (!disabled)
            {
                // Update the mouse wheel
                wheelDelta = rawWheelDeltaLast - rawWheelDelta;

                // Update the mouse position
                mousePosLast = mousePos;
                mousePos     = (new Vector2F(XnaMouse.GetState().X, XnaMouse.GetState().Y) - mouseOffset) / (float)gameScale;
            }
        }
コード例 #4
0
ファイル: Input.cs プロジェクト: srakowski/LD47
 private void RefreshInputState()
 {
     _keyboard = _keyboard.Next(KB.GetState());
     _mouse    = _mouse.Next(MS.GetState());
     UpdateGamePadState(PlayerIndex.One);
     UpdateGamePadState(PlayerIndex.Two);
     UpdateGamePadState(PlayerIndex.Three);
     UpdateGamePadState(PlayerIndex.Four);
 }
コード例 #5
0
    public void Update(GameTime gameTime)
    {
        previousMouseState    = currentMouseState;
        previousKeyboardState = currentKeyboardState;
        previousGamePadState  = (GamePadState[])currentGamePadState.Clone();
        //previousJoyState = currentJoyState;

        currentMouseState    = Mouse.GetState();
        currentKeyboardState = Keyboard.GetState();

        foreach (PlayerIndex index in Enum.GetValues(typeof(PlayerIndex)))
        {
            currentGamePadState[(int)index] = GamePad.GetState(index);
        }

        if (RumbleDuration > 0)
        {
            GamePadVibration(PlayerIndex.One, leftMotor, rightMotor);
            rumbleDuration -= (float)gameTime.ElapsedGameTime.TotalSeconds;
        }

        if (!currentGamePadState[0].IsConnected && enableControllers && joystick == null)
        {
            JoystickPing -= (float)gameTime.ElapsedGameTime.TotalSeconds;
            if (JoystickPing < 0)
            {
                JoystickPing = JoystickPingDuration;
                var th = new Thread(GenericControllerConnection);
                th.Start();
#if DEBUG
                Console.WriteLine("A new thread has been created!");
#endif
            }
        }
        else if (joystick != null && enableControllers)
        {
            joystick.Poll();
#if DEBUG
            Console.WriteLine("Polling Joystick...");
#endif
            try
            {
                JoystickState state = joystick.GetCurrentState();
                currentJoyState = joystick.GetCurrentState();
                bool[] button = state.Buttons;
                int[]  hats   = state.PointOfViewControllers;
                Console.WriteLine("[{0}]", string.Join(", ", hats));
            }
            catch (Exception)
            {
#if DEBUG
                Console.WriteLine("Oops, the controller disconnected!");
#endif
                joystick = null;
            }
        }
    }
コード例 #6
0
ファイル: InputManager.cs プロジェクト: srakowski/LD45
 public override void Update(GameTime gameTime)
 {
     CenterScreen = Game.GraphicsDevice.Viewport.Bounds.Center.ToVector2();
     Keyboard     = Keyboard.Next(KB.GetState());
     Mouse        = Mouse.Next(MS.GetState());
     UpdateGamePadState(PlayerIndex.One);
     UpdateGamePadState(PlayerIndex.Two);
     UpdateGamePadState(PlayerIndex.Three);
     UpdateGamePadState(PlayerIndex.Four);
 }
コード例 #7
0
ファイル: VirtualKeyboard.cs プロジェクト: Anttifer/Jypeli
        public override void Update(GameTime gameTime)
        {
            bool checkForKeyPress;

#if NETCOREAPP
            MouseState mouseState = XnaMouse.GetState();

            checkForKeyPress = prevMouseState.LeftButton == XnaButtonState.Pressed &&
                               mouseState.LeftButton == XnaButtonState.Released;
#endif

#if ANDROID
            TouchCollection touchCollection = XnaTouchPanel.GetState();
            checkForKeyPress = touchCollection.Count > 0 && touchCollection[0].State == TouchLocationState.Released;
            // TODO multi-touch support?
            Vector2 touchPos = touchCollection.Count > 0 ? touchCollection[0].Position : Vector2.Zero;
#endif

            foreach (VirtualKey key in keys)
            {
                if (checkForKeyPress)
                {
#if WINDOWS
                    if (mouseState.Y > Y + key.Y && mouseState.Y < Y + key.Y + key.Height &&
                        mouseState.X > X + key.X && mouseState.X < X + key.X + key.Width)
                    {
                        HandleKeyPress(key);
                        checkForKeyPress = false;
                    }
#endif

#if ANDROID
                    if (touchPos.Y > Y + key.Y && touchPos.Y < Y + key.Y + key.Height &&
                        touchPos.X > X + key.X && touchPos.X < X + key.X + key.Width)
                    {
                        HandleKeyPress(key);
                        checkForKeyPress = false;
                    }
#endif
                }

                key.Update(gameTime);
            }

#if WINDOWS
            prevMouseState = mouseState;
#endif

            base.Update(gameTime);
        }
コード例 #8
0
        public override void Update(GameTime gameTime)
        {
            _lastState    = _currentState;
            _currentState = XnaMouse.GetState();

            CheckButtonUpdate(MouseButtons.Left);
            CheckButtonUpdate(MouseButtons.Right);
            CheckButtonUpdate(MouseButtons.Middle);

            if (Speed != Vector2.Zero)
            {
                Move?.Invoke(new MouseEventArgs(this, Position, MouseButtons.None));
            }
        }
コード例 #9
0
        public void Update(Time time)
        {
#if XNA
            var state = XnaMouse.GetState();

            _currentPayload = new MousePayload
            {
                Position           = new Vector2(state.X, state.Y),
                LeftButtonPressed  = state.LeftButton == ButtonState.Pressed,
                RightButtonPressed = state.RightButton == ButtonState.Pressed,
                ScrollValue        = state.ScrollWheelValue
            };
#else
            throw new System.NotImplementedException("No implementation for this platform!");
#endif
        }
コード例 #10
0
ファイル: InputManager.cs プロジェクト: MSigma/ZooBurst
        public static void Update(GameTime gameTime)
        {
            if (KeyboardEnabled)
            {
                _input.Update(gameTime);
            }

            _previousMousePosition = new Vector2(Mouse.X, Mouse.Y);
            MousePrevious          = Mouse;
            KeyboardPrevious       = Keyboard;

            Mouse    = XMouse.GetState();
            Keyboard = XKeyboard.GetState();

            _handledKeys.Clear();
            _handledMouseButtons.Clear();
        }
コード例 #11
0
        public void Update(GameTime gameTime)
        {
            _previousKeyboard = _currentKeyboard;
            _currentKeyboard  = Keyboard.GetState();

            _previousMouse = _currentMouse;
            _currentMouse  = Mouse.GetState();

            if (_previousKeyboard.IsKeyDown(ToggleDebugHotKey) && _currentKeyboard.IsKeyUp(ToggleDebugHotKey))
            {
                Enabled = !Enabled;
            }

            if (!Enabled)
            {
                return;
            }
            if (!BoundingBoxesEnabled)
            {
                return;
            }

            if ((_previousMouse.LeftButton == ButtonState.Pressed && _currentMouse.LeftButton != ButtonState.Pressed) ||
                (_previousMouse.RightButton == ButtonState.Pressed && _currentMouse.RightButton != ButtonState.Pressed))
            {
                TopMostFocused = TopMostFocused == null ? _topMostHighlighted : null;
            }

            if (_previousKeyboard.IsKeyDown(Keys.Escape) && _currentKeyboard.IsKeyUp(Keys.Escape))
            {
                TopMostFocused = null;
            }

            // add extra updates below here
            if (TopMostFocused == null)
            {
                CursorPosition = Renderer.Unproject(_currentMouse.Position.ToVector2());
            }

            if (GuiManager.FocusManager.TryGetElementAt(CursorPosition, e => e is GuiElement c,
                                                        out var controlMatchingPosition))
            {
                _topMostHighlighted = controlMatchingPosition as GuiElement;
            }
コード例 #12
0
        public override void Update(GameTime gameTime)
        {
            if (!Visible || !EOGame.Instance.IsActive)
            {
                return;
            }

            MouseState mouseState = Mouse.GetState();

            //this is our own button press handler
            if (MouseOver && mouseState.LeftButton == ButtonState.Released && PreviousMouseState.LeftButton == ButtonState.Pressed)
            {
                if (!Selected)
                {
                    ((EOChatRenderer)parent).SetSelectedTab(WhichTab);
                }

                //logic for handling the close button (not actually a button, was I high when I made this...?)
                if ((WhichTab == ChatTabs.Private1 || WhichTab == ChatTabs.Private2) && closeRect != null)
                {
                    Rectangle withOffset = new Rectangle(DrawAreaWithOffset.X + closeRect.Value.X, DrawAreaWithOffset.Y + closeRect.Value.Y, closeRect.Value.Width, closeRect.Value.Height);
                    if (withOffset.ContainsPoint(Mouse.GetState().X, Mouse.GetState().Y))
                    {
                        ClosePrivateChat();
                    }
                }
            }
            else if (Selected && mouseState.RightButton == ButtonState.Released && PreviousMouseState.RightButton == ButtonState.Pressed && WhichTab != ChatTabs.None)
            {
                XNAControl tmpParent = parent.GetParent();                 //get the panel containing this tab, the parent is the chatRenderer
                if (tmpParent.DrawAreaWithOffset.Contains(mouseState.X, mouseState.Y))
                {
                    int adjustedY = mouseState.Y - tmpParent.DrawAreaWithOffset.Y;
                    int level     = (int)Math.Round(adjustedY / 13.0) - 1;
                    if (level >= 0 && scrollBar.ScrollOffset + level < chatStrings.Count)
                    {
                        EOGame.Instance.Hud.SetChatText("!" + chatStrings.Keys[scrollBar.ScrollOffset + level].Who + " ");
                    }
                }
            }

            base.Update(gameTime);
        }
コード例 #13
0
ファイル: MouseC.cs プロジェクト: shao400/CSE3902Team1
 public void Update()
 {
     if (Mouse.GetState().RightButton == ButtonState.Pressed)
     {
         myGame.Exit();
     }
     if (Mouse.GetState().LeftButton == ButtonState.Pressed && Mouse.GetState().X <= 400 && Mouse.GetState().Y <= 240)
     {
         myGame.sprite = new fixedStaticSprite(myGame.luigi, 6, 14);
     }
     if (Mouse.GetState().LeftButton == ButtonState.Pressed && Mouse.GetState().X > 400 && Mouse.GetState().Y <= 240)
     {
         myGame.sprite = new fixedAnimatedSprite(myGame.luigi, 6, 14);
     }
     if (Mouse.GetState().LeftButton == ButtonState.Pressed && Mouse.GetState().X <= 400 && Mouse.GetState().Y > 240)
     {
         myGame.sprite = new movingStaticSprite(myGame.luigi, 6, 14);
     }
     if (Mouse.GetState().LeftButton == ButtonState.Pressed && Mouse.GetState().X > 400 && Mouse.GetState().Y > 240)
     {
         myGame.sprite = new movingAnimatedSprite(myGame.luigi, 6, 14);
     }
 }
コード例 #14
0
        /// <summary>
        ///
        /// </summary>
        protected virtual void HandleInput(GameTime gameTime)
        {
            Ms       = Mouse.GetState();
            MsRect.X = Ms.X;
            MsRect.Y = Ms.Y;

            // if deselected after the control had focus, remove the focus
            if (IsFocused && Ms.LeftButton == ButtonState.Pressed && !Panel.Contains(MsRect))
            {
                // focus removed.
                IsFocused = false;
                LostFocus(this, EventArgs.Empty);
            }

            if (Visibility == Visibility.Visible)
            {
                if (Panel.Contains(MsRect))
                {
                    if (!MouseEntered)
                    {
                        MouseEntered = true;
                        OnMouseEnter();
                    }
                }
                else
                {
                    if (MouseEntered)
                    {
                        MouseEntered = false;
                        OnMouseLeave();
                    }
                }

                if (IsTabStop && Keyboard.GetState().IsKeyDown(Keys.Tab) && !_tabRecorded)
                {
                    _tabRecorded = true;
                    //CurrentTabIndex++;
                }

                if (!IsEnabled)
                {
                    return;
                }

                if (!MousePressed && Ms.LeftButton == ButtonState.Pressed && MouseEntered)
                {
                    if (!MousePressPositionRecorded)
                    {
                        MousePressPositionRecorded = true;
                        MousePressPosition.X       = MsRect.X;
                        MousePressPosition.Y       = MsRect.Y;
                    }

                    MousePressed = true;
                    OnMouseDown();
                }

                if (Ms.LeftButton == ButtonState.Released)
                {
                    if (MousePressed)
                    {
                        MousePressed = false;
                        //_tabRecorded = false;

                        if (MouseEntered)
                        {
                            OnMouseUp();
                        }
                    }

                    if (MousePressPositionRecorded)
                    {
                        MousePressPositionRecorded = false;
                    }
                }
            }
        }
コード例 #15
0
        private static void UpdateMouseEvents(GameTime gameTime)
        {
            MouseState current = Mouse.GetState();

            // Check button press.
            if (current.LeftButton == ButtonState.Pressed && _previousMouseState.LeftButton == ButtonState.Released)
            {
                RaiseMouseDownEvent(MouseButton.Left, current.X, current.Y);
            }

            if (current.MiddleButton == ButtonState.Pressed && _previousMouseState.MiddleButton == ButtonState.Released)
            {
                RaiseMouseDownEvent(MouseButton.Middle, current.X, current.Y);
            }

            if (current.RightButton == ButtonState.Pressed && _previousMouseState.RightButton == ButtonState.Released)
            {
                RaiseMouseDownEvent(MouseButton.Right, current.X, current.Y);
            }

            if (current.XButton1 == ButtonState.Pressed && _previousMouseState.XButton1 == ButtonState.Released)
            {
                RaiseMouseDownEvent(MouseButton.X1, current.X, current.Y);
            }

            if (current.XButton2 == ButtonState.Pressed && _previousMouseState.XButton2 == ButtonState.Released)
            {
                RaiseMouseDownEvent(MouseButton.X2, current.X, current.Y);
            }

            // Check button releases.
            if (current.LeftButton == ButtonState.Released && _previousMouseState.LeftButton == ButtonState.Pressed)
            {
                RaiseMouseUpEvent(MouseButton.Left, current.X, current.Y);
            }

            if (current.MiddleButton == ButtonState.Released && _previousMouseState.MiddleButton == ButtonState.Pressed)
            {
                RaiseMouseUpEvent(MouseButton.Middle, current.X, current.Y);
            }

            if (current.RightButton == ButtonState.Released && _previousMouseState.RightButton == ButtonState.Pressed)
            {
                RaiseMouseUpEvent(MouseButton.Right, current.X, current.Y);
            }

            if (current.XButton1 == ButtonState.Released && _previousMouseState.XButton1 == ButtonState.Pressed)
            {
                RaiseMouseUpEvent(MouseButton.X1, current.X, current.Y);
            }

            if (current.XButton2 == ButtonState.Released && _previousMouseState.XButton2 == ButtonState.Pressed)
            {
                RaiseMouseUpEvent(MouseButton.X2, current.X, current.Y);
            }

            // Whether ANY button is pressed.
            bool buttonDown = current.LeftButton == ButtonState.Pressed ||
                              current.MiddleButton == ButtonState.Pressed ||
                              current.RightButton == ButtonState.Pressed ||
                              current.XButton1 == ButtonState.Pressed ||
                              current.XButton2 == ButtonState.Pressed;

            // Check for any sort of mouse movement. If a button is down, it's a drag,
            // otherwise it's a move.
            if (_previousMouseState.X != current.X || _previousMouseState.Y != current.Y)
            {
                RaiseMouseMoveEvent(current.X, current.Y);
            }

            // Handle mouse wheel events.
            if (_previousMouseState.ScrollWheelValue != current.ScrollWheelValue)
            {
                RaiseMouseScrollEvent(current.X, current.Y, current.ScrollWheelValue);
            }

            _previousMouseState = current;
        }
コード例 #16
0
ファイル: MiniGolf.cs プロジェクト: yoperiquoi/MiniGolf
        protected override void Update(GameTime gameTime)
        {
            _keyboardState = Keyboard.GetState();
            MouseState     = Mouse.GetState();
            Entity mainEntity = _manager.MainPlayer.Ball.Form;

            //Managing the different interactions following the current state of the game
            if (_launched)
            {
                //Updating the camera
                Camera.Update((float)gameTime.ElapsedGameTime.TotalSeconds);

                if (_keyboardState.IsKeyDown(Keys.Escape))
                {
                    //Quit using Escape
                    Exit();
                    return;
                }

                //Managing the loading of the shot
                if (!_manager.MainPlayer.Ball.IsMoving())
                {
                    if (MouseState.LeftButton == ButtonState.Pressed)
                    {
                        if (_chargeBar.Charge <= _chargeBar.ChargeMax)
                        {
                            _chargeBar.Charge += 0.1f * (float)gameTime.ElapsedGameTime.TotalMilliseconds;
                        }
                        if (_chargeBar.Charge >= _chargeBar.ChargeMax)
                        {
                            _chargeBar.Charge = _chargeBar.ChargeMax;
                        }
                    }
                    if (_lastMouseState.LeftButton == ButtonState.Pressed)
                    {
                        //Hitting the ball
                        if (MouseState.LeftButton == ButtonState.Released)
                        {
                            mainEntity.LinearVelocity += Camera.Camera.ViewDirection * _chargeBar.Charge;
                            _sound.Hit(_chargeBar);
                            _chargeBar.Charge = 0;
                            _manager.NbHits++;
                        }
                    }
                }
                else
                {
                    _chargeBar.Charge = 0;
                }
                _lastMouseState = MouseState;

                //Managing the hole and the finish of the course
                if (mainEntity.CollisionInformation.BoundingBox.Intersects(_manager.MainLevel.BoundingArrive) && !_manager.Loading)
                {
                    _sound.Success();
                    BoundingBox box = new BoundingBox(new Vector3(-1, -21, -1), new Vector3(1, -19, 1));
                    mainEntity.CollisionInformation.BoundingBox = box;
                    mainEntity.Position       = Vector3.Zero;
                    mainEntity.LinearVelocity = Vector3.Zero;
                    _manager.LoadNextLevel();
                }

                //Managing a fall and the reset of position in case of bug
                if (mainEntity.Position.Y < -50f || _keyboardState.IsKeyDown(Keys.R))
                {
                    _sound.Out();
                    mainEntity.LinearVelocity = Vector3.Zero;
                    mainEntity.Position       = Vector3.Zero;
                }

                _chargeBar.Update(gameTime);
                _manager.Space.Update();
                base.Update(gameTime);
            }
            //If the game is not launched or ended the start HUD is showed
            else if (!_launched && !_manager.Ended)
            {
                //Using Apos.GUI to show the HUD
                GuiHelper.UpdateSetup();
                _ui.UpdateAll(gameTime);

                // Creating the HUD
                Panel.Push().XY = new Vector2(Graphics.PreferredBackBufferWidth / 2, Graphics.PreferredBackBufferHeight / 2);
                Label.Put("MiniGolf");
                if (Button.Put("Launch Game").Clicked)
                {
                    IsMouseVisible = false;
                    _launched      = true;
                    _sound.PlayAmbiant();
                }
                if (Button.Put("Quit").Clicked)
                {
                    Exit();
                }

                Panel.Pop();


                GuiHelper.UpdateCleanup();
            }

            //Showing the score board at the end using Apos.GUI
            if (_manager.Ended)
            {
                int i = 1;
                GuiHelper.UpdateSetup();
                _ui.UpdateAll(gameTime);

                // Create your UI.
                Panel.Push().XY = new Vector2(Graphics.PreferredBackBufferWidth / 2, Graphics.PreferredBackBufferHeight / 2);
                Label.Put("Course finished");
                Label.Put("Player : " + _manager.MainPlayer.Name);
                foreach (var score in _manager.MainPlayer.Score)
                {
                    Label.Put($"Level {i} : " + score.ToString());
                    i++;
                }
                Label.Put("Press Echap to quit");
                if (Button.Put("Quit").Clicked)
                {
                    Exit();
                    return;
                }

                Panel.Pop();

                // Call UpdateCleanup at the end.
                GuiHelper.UpdateCleanup();

                if (_keyboardState.IsKeyDown(Keys.Escape))
                {
                    Exit();
                    return;
                }
            }
            base.Update(gameTime);
        }