Exemplo n.º 1
0
        /// <summary>
        /// Returns if the provided button(s) state was just changed in this frame (release->pressed / pressed->release)
        /// </summary>
        /// <param name="i_Buttons">
        /// Buttons to query.
        /// Specify a single button, or combine multiple buttons using
        /// a bitwise OR operation.</param>
        /// <returns>
        /// true if one of the specified buttons state was just changed (release->pressed / pressed->release).
        /// false otherwise
        /// </returns>
        public bool ButtonStateChanged(eInputButtons i_Buttons)
        {
            const bool v_OneIsEnough = true;

            return(this.ButtonStateChanged(i_Buttons, ButtonState.Released, v_OneIsEnough)
                   ||
                   this.ButtonStateChanged(i_Buttons, ButtonState.Pressed, v_OneIsEnough));
        }
 public bool ButtonsAreDown(eInputButtons i_MouseButtons)
 {
     return(false);
 }
        /// <summary>
        /// Returns if the provided button(s) were RELEASED at this frame.
        /// </summary>
        /// <param name="i_Buttons">
        /// Buttons to query.
        /// Specify a single button, or combine multiple buttons using
        /// a bitwise OR operation.</param>
        /// <returns>
        /// true if all of the specified buttons were just RELEASED.
        /// false otherwise
        /// </returns>
        public bool ButtonsReleased(eInputButtons i_Buttons)
        {
            const bool v_OneIsEnough = true;

            return(ButtonStateChanged(i_Buttons, ButtonState.Released, !v_OneIsEnough));
        }
Exemplo n.º 4
0
        /// <summary>
        /// Method gets a mouse button state
        /// </summary>
        /// <param name="i_Button">The specified button</param>
        /// <param name="i_CurrentState">Indicates if button state is from current
        /// or previous state</param>
        /// <returns></returns>
        private ButtonState getMouseButtonState(eInputButtons i_Button, bool i_CurrentState)
        {
            MouseState requestedMouseState;

            // Checking if requested state is current or previous
            if (i_CurrentState)
            {
                requestedMouseState = m_CurrMouseState;
            }
            else
            {
                requestedMouseState = m_PrevMouseState;
            }

            // Determining which button is specified
            switch(i_Button)
            {
                case eInputButtons.Left:
                    return requestedMouseState.LeftButton;
                case eInputButtons.Middle:
                    return requestedMouseState.MiddleButton;
                case eInputButtons.Right:
                    return requestedMouseState.RightButton;
                case eInputButtons.XButton1:
                    return requestedMouseState.XButton1;
                case eInputButtons.XButton2:
                    return requestedMouseState.XButton2;
                default:
                    return ButtonState.Released;
            }
        }
Exemplo n.º 5
0
        /// <summary>
        ///     Returns if the provided button(s) were RELEASED at this frame.
        /// </summary>
        /// <param name="i_Buttons">
        ///     Buttons to query.
        ///     Specify a single button, or combine multiple buttons using
        ///     a bitwise OR operation.
        /// </param>
        /// <returns>
        ///     true if all of the specified buttons were just RELEASED.
        ///     false otherwise
        /// </returns>
        public bool ButtonsReleased(eInputButtons i_Buttons)
        {
            const bool r_VOneIsEnough = true;

            return ButtonStateChanged(i_Buttons, ButtonState.Released, !r_VOneIsEnough);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Returns if one (or more) of the provided button(s) are down at this frame
        /// </summary>
        /// <param name="button"></param>
        /// <returns>
        /// true if one of the specified buttons is currently down.
        /// false otherwise
        /// </returns>
        public bool ButtonIsDown(eInputButtons i_MouseButtons)
        {
            const bool v_OneIsEnough = true;

            return(this.checkButtonsState(i_MouseButtons, ButtonState.Pressed, v_OneIsEnough));
        }
Exemplo n.º 7
0
        private bool checkButtonsState(eInputButtons i_Buttons, ButtonState i_ButtonState, bool i_IsOneEnough)
        {
            const bool v_CheckChanged = true;

            return(this.checkButtonsState(i_Buttons, i_ButtonState, i_IsOneEnough, !v_CheckChanged));
        }
 public bool ButtonsReleased(eInputButtons i_Buttons)
 {
     return(false);
 }
 /// <summary>
 /// Returns if all of the provided buttons are up at this frame
 /// </summary>
 /// <param name="button"></param>
 /// <returns>
 /// true if all of the specified buttons are currently up.
 /// false otherwise
 /// </returns>
 public bool ButtonsAreUp(eInputButtons i_MouseButtons)
 {
     const bool v_OneIsEnough = true;
     return checkButtonsState(i_MouseButtons, ButtonState.Released, !v_OneIsEnough);
 }
 /// <summary>
 /// Returns if one (or more) of the provided button(s) are down at this frame
 /// </summary>
 /// <param name="button"></param>
 /// <returns>
 /// true if one of the specified buttons is currently down.
 /// false otherwise
 /// </returns>
 public bool ButtonIsDown(eInputButtons i_MouseButtons)
 {
     const bool v_OneIsEnough = true;
     return checkButtonsState(i_MouseButtons, ButtonState.Pressed, v_OneIsEnough);
 }
 public bool ButtonsAreUp(eInputButtons i_MouseButtons)
 {
     return true;
 }
 public bool ButtonsAreDown(eInputButtons i_MouseButtons)
 {
     return false;
 }
 public bool ButtonReleased(eInputButtons i_Buttons)
 {
     return false;
 }
 // Allows querying buttons state CHANGES (Mouse and GamePad):
 public bool ButtonPressed(eInputButtons i_Buttons)
 {
     return false;
 }
 public bool ButtonsAreUp(eInputButtons i_MouseButtons)
 {
     return(true);
 }
 public bool ButtonsPressed(eInputButtons i_Buttons)
 {
     return(false);
 }
        /// <summary>
        /// Returns if the provided button(s) state was just changed in this frame (release->pressed / pressed->release)
        /// </summary>
        /// <param name="i_Buttons">
        /// Buttons to query.
        /// Specify a single button, or combine multiple buttons using
        /// a bitwise OR operation.</param>
        /// <returns>
        /// true if one of the specified buttons state was just changed (release->pressed / pressed->release).
        /// false otherwise
        /// </returns>
        public bool ButtonStateChanged(eInputButtons i_Buttons)
        {
            const bool v_OneIsEnough = true;

            return ButtonStateChanged(i_Buttons, ButtonState.Released, v_OneIsEnough)
                ||
                ButtonStateChanged(i_Buttons, ButtonState.Pressed, v_OneIsEnough);
        }
 private bool checkButtonsState(eInputButtons i_Buttons, ButtonState i_ButtonState, bool i_IsOneEnough)
 {
     const bool v_CheckChanged = true;
     return checkButtonsState(i_Buttons, i_ButtonState, i_IsOneEnough, !v_CheckChanged);
 }
        private bool checkButtonsState(eInputButtons i_Buttons, ButtonState i_ButtonState, bool i_IsOneEnough, bool i_CheckChanged)
        {
            bool checkRelease = i_ButtonState == ButtonState.Released;

            bool atLeastOneIsTrue = false;
            bool allTrue = false;
            bool currCheck = false;

            ButtonState currState = i_ButtonState;
            ButtonState prevState = checkRelease ? ButtonState.Pressed : ButtonState.Released;

            #region GamePad Controls
            if ((i_Buttons & eInputButtons.A) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.A)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.A));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.B) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.B)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.B));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.X) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.X)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.X));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.Y) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.Y)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.Y));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.DPadDown) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.DPadDown)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.DPadDown));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.DPadUp) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.DPadUp)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.DPadUp));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.DPadLeft) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.DPadLeft)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.DPadLeft));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.DPadRight) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.DPadRight)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.DPadRight));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.Back) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.Back)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.Back));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.Start) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.Start)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.Start));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }

            if ((i_Buttons & eInputButtons.LeftShoulder) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.LeftShoulder)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.LeftShoulder));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }

            if ((i_Buttons & eInputButtons.RightShoulder) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.RightShoulder)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.RightShoulder));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }

            if ((i_Buttons & eInputButtons.LeftStick) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.LeftStick)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.LeftStick));
                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.RightStick) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.RightStick)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.RightStick));
                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.LeftThumbstickDown) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.LeftThumbstickDown)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.LeftThumbstickDown));
                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.LeftThumbstickUp) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.LeftThumbstickUp)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.LeftThumbstickUp));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.LeftThumbstickLeft) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.LeftThumbstickLeft)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.LeftThumbstickLeft));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.LeftThumbstickRight) != 0)
            {
                currCheck = checkRelease == m_GamePadState.IsButtonUp(Buttons.LeftThumbstickRight)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.LeftThumbstickRight));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.RightThumbstickDown) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.RightThumbstickDown)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.RightThumbstickDown));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.RightThumbstickUp) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.RightThumbstickUp)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.RightThumbstickUp));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.RightThumbstickLeft) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.RightThumbstickLeft)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.RightThumbstickLeft));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.RightThumbstickRight) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.RightThumbstickRight)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.RightThumbstickRight));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.LeftTrigger) != 0)
            {
                currCheck =
                    checkRelease == m_GamePadState.IsButtonUp(Buttons.LeftTrigger)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.LeftTrigger));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            if ((i_Buttons & eInputButtons.RightTrigger) != 0)
            {
                currCheck =
                     checkRelease == m_GamePadState.IsButtonUp(Buttons.RightTrigger)
                    && (!i_CheckChanged || checkRelease != m_PrevGamePadState.IsButtonUp(Buttons.RightTrigger));

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            #endregion GamePad Controls

            #region Mouse Buttons
            if ((i_Buttons & eInputButtons.Left) != 0)
            {
                currCheck =
                    m_MouseState.LeftButton == currState
                    && ((m_PrevMouseState.LeftButton == prevState) || !i_CheckChanged);

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            else if ((i_Buttons & eInputButtons.Middle) != 0)
            {
                currCheck =
                    m_MouseState.MiddleButton == currState
                    && ((m_PrevMouseState.MiddleButton == prevState) || !i_CheckChanged);

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            else if ((i_Buttons & eInputButtons.Right) != 0)
            {
                currCheck =
                    m_MouseState.RightButton == currState
                    && ((m_PrevMouseState.RightButton == prevState) || !i_CheckChanged);

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            else if ((i_Buttons & eInputButtons.XButton1) != 0)
            {
                currCheck =
                    m_MouseState.XButton1 == currState
                    && ((m_PrevMouseState.XButton1 == prevState) || !i_CheckChanged);

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            else if ((i_Buttons & eInputButtons.XButton2) != 0)
            {
                currCheck =
                    m_MouseState.XButton2 == currState
                    && ((m_PrevMouseState.XButton2 == prevState) || !i_CheckChanged);

                atLeastOneIsTrue |= currCheck;
                allTrue &= currCheck;
            }
            #endregion Mouse Buttons

            return i_IsOneEnough ? atLeastOneIsTrue : allTrue;
        }
Exemplo n.º 20
0
        private bool checkButtonsState(eInputButtons i_Buttons, ButtonState i_ButtonState, bool i_IsOneEnough, bool i_CheckChanged)
        {
            bool checkRelease = i_ButtonState == ButtonState.Released;

            bool atLeastOneIsTrue = false;
            bool allTrue          = false;
            bool currCheck        = false;

            ButtonState currState = i_ButtonState;
            ButtonState prevState = checkRelease ? ButtonState.Pressed : ButtonState.Released;

            #region GamePad Controls
            if ((i_Buttons & eInputButtons.A) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.A) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.A));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.B) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.B) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.B));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.X) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.X) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.X));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.Y) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.Y) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.Y));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.DPadDown) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.DPadDown) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.DPadDown));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.DPadUp) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.DPadUp) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.DPadUp));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.DPadLeft) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.DPadLeft) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.DPadLeft));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.DPadRight) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.DPadRight) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.DPadRight));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.Back) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.Back) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.Back));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.Start) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.Start) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.Start));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.LeftShoulder) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.LeftShoulder) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.LeftShoulder));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.RightShoulder) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.RightShoulder) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.RightShoulder));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.LeftStick) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.LeftStick) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.LeftStick));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.RightStick) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.RightStick) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.RightStick));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.LeftThumbstickDown) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.LeftThumbstickDown) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.LeftThumbstickDown));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.LeftThumbstickUp) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.LeftThumbstickUp) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.LeftThumbstickUp));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.LeftThumbstickLeft) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.LeftThumbstickLeft) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.LeftThumbstickLeft));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.LeftThumbstickRight) != 0)
            {
                currCheck = checkRelease == this.m_GamePadState.IsButtonUp(Buttons.LeftThumbstickRight) &&
                            (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.LeftThumbstickRight));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.RightThumbstickDown) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.RightThumbstickDown) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.RightThumbstickDown));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.RightThumbstickUp) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.RightThumbstickUp) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.RightThumbstickUp));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.RightThumbstickLeft) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.RightThumbstickLeft) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.RightThumbstickLeft));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.RightThumbstickRight) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.RightThumbstickRight) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.RightThumbstickRight));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.LeftTrigger) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.LeftTrigger) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.LeftTrigger));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }

            if ((i_Buttons & eInputButtons.RightTrigger) != 0)
            {
                currCheck =
                    checkRelease == this.m_GamePadState.IsButtonUp(Buttons.RightTrigger) &&
                    (!i_CheckChanged || checkRelease != this.m_PrevGamePadState.IsButtonUp(Buttons.RightTrigger));

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }
            #endregion GamePad Controls

            #region Mouse Buttons
            if ((i_Buttons & eInputButtons.Left) != 0)
            {
                currCheck =
                    this.m_MouseState.LeftButton == currState &&
                    ((this.m_PrevMouseState.LeftButton == prevState) || !i_CheckChanged);

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }
            else if ((i_Buttons & eInputButtons.Middle) != 0)
            {
                currCheck =
                    this.m_MouseState.MiddleButton == currState &&
                    ((this.m_PrevMouseState.MiddleButton == prevState) || !i_CheckChanged);

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }
            else if ((i_Buttons & eInputButtons.Right) != 0)
            {
                currCheck =
                    this.m_MouseState.RightButton == currState &&
                    ((this.m_PrevMouseState.RightButton == prevState) || !i_CheckChanged);

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }
            else if ((i_Buttons & eInputButtons.XButton1) != 0)
            {
                currCheck =
                    this.m_MouseState.XButton1 == currState &&
                    ((this.m_PrevMouseState.XButton1 == prevState) || !i_CheckChanged);

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }
            else if ((i_Buttons & eInputButtons.XButton2) != 0)
            {
                currCheck =
                    this.m_MouseState.XButton2 == currState &&
                    ((this.m_PrevMouseState.XButton2 == prevState) || !i_CheckChanged);

                atLeastOneIsTrue |= currCheck;
                allTrue          &= currCheck;
            }
            #endregion Mouse Buttons

            return(i_IsOneEnough ? atLeastOneIsTrue : allTrue);
        }
Exemplo n.º 21
0
 /// <summary>
 /// Gets if button's state was changed from pressed to not-pressed since
 /// last call based on current&previous state
 /// </summary>
 /// <param name="i_Button">the specified button</param>
 /// <returns>true if button was released since last call, else false</returns>
 public bool ButtonReleased(eInputButtons i_Button)
 {
     return
         getMouseButtonState(i_Button, true) == ButtonState.Released &&
         getMouseButtonState(i_Button, false) == ButtonState.Pressed;
 }
Exemplo n.º 22
0
        /// <summary>
        /// Returns if all of the provided buttons are up at this frame
        /// </summary>
        /// <param name="button"></param>
        /// <returns>
        /// true if all of the specified buttons are currently up.
        /// false otherwise
        /// </returns>
        public bool ButtonsAreUp(eInputButtons i_MouseButtons)
        {
            const bool v_OneIsEnough = true;

            return(this.checkButtonsState(i_MouseButtons, ButtonState.Released, !v_OneIsEnough));
        }
Exemplo n.º 23
0
        /// <summary>
        ///     Returns if the provided button(s) was PRESSED at this frame.
        /// </summary>
        /// <param name="i_Buttons">
        ///     Buttons to query.
        ///     Specify a single button, or combine multiple buttons using
        ///     a bitwise OR operation.
        /// </param>
        /// <returns>
        ///     true if one of the specified buttons (or more) was just PRESSED.
        ///     false otherwise
        /// </returns>
        public bool ButtonPressed(eInputButtons i_Buttons)
        {
            const bool r_VOneIsEnough = true;

            return ButtonStateChanged(i_Buttons, ButtonState.Pressed, r_VOneIsEnough);
        }