/// <summary> /// Sends a message to listeners that a thumbstick has recently been released. /// </summary> /// <param name="stickType">Type of thumbstick (left or right)</param> /// <param name="player">Player whose controller this message pertains to</param> /// <param name="gameTime">Snapshot of the game's timing state</param> private void SendThumbstickReleaseMessage(GamePadInputSide stickType, PlayerIndex player, GameTime gameTime) { MsgGamePadThumbstickReleased thumbstickMessage = ObjectPool.Aquire <MsgGamePadThumbstickReleased>(); thumbstickMessage.StickType = stickType; thumbstickMessage.PlayerIndex = player; thumbstickMessage.Time = gameTime; this.Game.QueueMessage(thumbstickMessage); }
/// <summary> /// Sends a message meant to tell listeners to that a trigger has been recently released. /// </summary> /// <param name="triggerType">Type of trigger</param> /// <param name="player">Index of player's controller (1-4)</param> /// <param name="gameTime">Snapshot of game's timing state</param> private void SendTriggerReleaseMessage(GamePadInputSide triggerType, PlayerIndex player, GameTime gameTime) { MsgGamePadTriggerReleased triggerMessage = ObjectPool.Aquire <MsgGamePadTriggerReleased>(); triggerMessage.GamePadInputSide = triggerType; triggerMessage.PlayerIndex = player; triggerMessage.Time = gameTime; this.Game.SendMessage(triggerMessage); }
/// <summary> /// Gets value of a given trigger for a given player's controller (by index). /// </summary> /// <param name="pIndex">Index of player's controller</param> /// <param name="side">Which trigger side"/></param> /// <param name="triggerValue">Current value of trigger</param> /// <returns>False if the trigger hasn't moved since its last update</returns> public bool Trigger(PlayerIndex pIndex, GamePadInputSide side, out float triggerValue) { triggerValue = this.triggers[(int)pIndex, (int)side]; if (triggerValue != this.previousTriggers[(int)pIndex, (int)side]) { return(false); } return(true); }
/// <summary> /// Gets value of a given thumbstick for a given player's controller (by index). /// </summary> /// <param name="pIndex">Index of player's controller</param> /// <param name="side">Which thumbstick side"/></param> /// <param name="stickValue">Current value of thumbstick</param> /// <returns>False if the thumbstick hasn't moved since its last update</returns> public bool Thumbstick(PlayerIndex pIndex, GamePadInputSide side, out Vector2 stickValue) { stickValue = this.thumbsticks[(int)pIndex, (int)side]; if (stickValue != this.previousThumbsticks[(int)pIndex, (int)side]) { return(false); } return(true); }
/// <summary> /// Sends a message containing information about a specific trigger /// </summary> /// <param name="stickType">Type of thumbstick (left or right)</param> /// <param name="XValue">Value of X-axis of thumbstick (-1.0f to 1.0f)</param> /// <param name="YValue">Value of Y-axis of thumbstick (-1.0f to 1.0f)</param> /// <param name="player">Player whose controller this message pertains to</param> /// <param name="gameTime">Snapshot of the game's timing state</param> private void SendThumbstickMessage(GamePadInputSide stickType, float XValue, float YValue, PlayerIndex player, GameTime gameTime) { MsgGamePadThumbstick thumbstickMessage = ObjectPool.Aquire <MsgGamePadThumbstick>(); thumbstickMessage.StickType = stickType; thumbstickMessage.StickValueX = XValue; thumbstickMessage.StickValueY = YValue; thumbstickMessage.PlayerIndex = player; thumbstickMessage.Time = gameTime; this.Game.QueueMessage(thumbstickMessage); }