/// <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)); }
/// <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; } }
/// <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); }
/// <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)); }
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; }
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); }
/// <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; }
/// <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)); }
/// <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); }