public static Microsoft.Xna.Framework.Input.GamePadState ToXNAGamePadState(this SharpDX.DirectInput.JoystickState joyState) { Microsoft.Xna.Framework.Vector2 LeftStick = new Microsoft.Xna.Framework.Vector2((float)joyState.X / 45000, (float)joyState.Y); Microsoft.Xna.Framework.Input.Buttons buttons = joyState.Buttons[0] ? Microsoft.Xna.Framework.Input.Buttons.A : 0; Microsoft.Xna.Framework.Input.GamePadState outputState = new Microsoft.Xna.Framework.Input.GamePadState(LeftStick, Microsoft.Xna.Framework.Vector2.Zero, 0, 0, buttons); return(outputState); }
public static void update_input(Game game, GameTime gameTime, bool gameActive, Microsoft.Xna.Framework.Input.KeyboardState key_state, Microsoft.Xna.Framework.Input.GamePadState controller_state) { Tactile.Input.update(gameActive, gameTime, key_state, controller_state); Input.UpdateKeyboardStart(key_state); Input.UpdateGamepadState(controller_state); Tactile.Input.update_input_state(Input); }
public static Microsoft.Xna.Framework.Input.GamePadState GetState(PlayerIndex playerIndex, Microsoft.Xna.Framework.Input.GamePadDeadZone deadZoneMode) { var controller = GetController(playerIndex); if (!controller.IsConnected) { return(new GamePadState()); // GamePadState.IsConnected = false by default } var gamepad = controller.GetState().Gamepad; Microsoft.Xna.Framework.Input.GamePadThumbSticks thumbSticks = new Microsoft.Xna.Framework.Input.GamePadThumbSticks( leftPosition: ConvertThumbStick(gamepad.LeftThumbX, gamepad.LeftThumbY, SharpDX.XInput.Gamepad.LeftThumbDeadZone, deadZoneMode), rightPosition: ConvertThumbStick(gamepad.RightThumbX, gamepad.RightThumbY, SharpDX.XInput.Gamepad.RightThumbDeadZone, deadZoneMode)); Microsoft.Xna.Framework.Input.GamePadTriggers triggers = new Microsoft.Xna.Framework.Input.GamePadTriggers( leftTrigger: gamepad.LeftTrigger / (float)byte.MaxValue, rightTrigger: gamepad.RightTrigger / (float)byte.MaxValue); Microsoft.Xna.Framework.Input.GamePadState state = new Microsoft.Xna.Framework.Input.GamePadState( thumbSticks: thumbSticks, triggers: triggers, buttons: ConvertToButtons( buttonFlags: gamepad.Buttons, leftThumbX: gamepad.LeftThumbX, leftThumbY: gamepad.LeftThumbY, rightThumbX: gamepad.RightThumbX, rightThumbY: gamepad.RightThumbY, leftTrigger: gamepad.LeftTrigger, rightTrigger: gamepad.RightTrigger), dPad: ConvertToGamePadDPad(gamepad.Buttons)); return(state); }
public override void HandleInput(Microsoft.Xna.Framework.Input.GamePadState gamePadState, Microsoft.Xna.Framework.Input.KeyboardState keyState, Microsoft.Xna.Framework.Input.MouseState mouseState) { //none? }
/// <summary> /// Handles the input and movement of the character. /// </summary> /// <param name="dt">Time since last frame in simulation seconds.</param> /// <param name="keyboardInput">Keyboard state.</param> /// <param name="gamePadInput">Gamepad state.</param> public void Update(float dt, Microsoft.Xna.Framework.Input.KeyboardState keyboardInput, Microsoft.Xna.Framework.Input.GamePadState gamePadInput) { //Update the wheel's graphics. for (int k = 0; k < 4; k++) { WheelModels[k].WorldTransform = Vehicle.Wheels[k].Shape.WorldTransform; } if (IsActive) { CameraControlScheme.Update(dt); #if XBOX360 float speed = gamePadInput.Triggers.Right * ForwardSpeed + gamePadInput.Triggers.Left * BackwardSpeed; Vehicle.Wheels[1].DrivingMotor.TargetSpeed = speed; Vehicle.Wheels[3].DrivingMotor.TargetSpeed = speed; if (gamePadInput.IsButtonDown(Buttons.LeftStick)) { foreach (Wheel wheel in Vehicle.Wheels) { wheel.Brake.IsBraking = true; } } else { foreach (Wheel wheel in Vehicle.Wheels) { wheel.Brake.IsBraking = false; } } Vehicle.Wheels[1].Shape.SteeringAngle = (gamePadInput.ThumbSticks.Left.X * MaximumTurnAngle); Vehicle.Wheels[3].Shape.SteeringAngle = (gamePadInput.ThumbSticks.Left.X * MaximumTurnAngle); #else if (keyboardInput.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.E)) { //Drive Vehicle.Wheels[1].DrivingMotor.TargetSpeed = ForwardSpeed; Vehicle.Wheels[3].DrivingMotor.TargetSpeed = ForwardSpeed; } else if (keyboardInput.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.D)) { //Reverse Vehicle.Wheels[1].DrivingMotor.TargetSpeed = BackwardSpeed; Vehicle.Wheels[3].DrivingMotor.TargetSpeed = BackwardSpeed; } else { //Idle Vehicle.Wheels[1].DrivingMotor.TargetSpeed = 0; Vehicle.Wheels[3].DrivingMotor.TargetSpeed = 0; } if (keyboardInput.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Space)) { //Brake foreach (Wheel wheel in Vehicle.Wheels) { wheel.Brake.IsBraking = true; } } else { //Release brake foreach (Wheel wheel in Vehicle.Wheels) { wheel.Brake.IsBraking = false; } } //Use smooth steering; while held down, move towards maximum. //When not pressing any buttons, smoothly return to facing forward. float angle; bool steered = false; if (keyboardInput.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.S)) { steered = true; angle = Math.Max(Vehicle.Wheels[1].Shape.SteeringAngle - TurnSpeed * dt, -MaximumTurnAngle); Vehicle.Wheels[1].Shape.SteeringAngle = angle; Vehicle.Wheels[3].Shape.SteeringAngle = angle; } if (keyboardInput.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.F)) { steered = true; angle = Math.Min(Vehicle.Wheels[1].Shape.SteeringAngle + TurnSpeed * dt, MaximumTurnAngle); Vehicle.Wheels[1].Shape.SteeringAngle = angle; Vehicle.Wheels[3].Shape.SteeringAngle = angle; } if (!steered) { //Neither key was pressed, so de-steer. if (Vehicle.Wheels[1].Shape.SteeringAngle > 0) { angle = Math.Max(Vehicle.Wheels[1].Shape.SteeringAngle - TurnSpeed * dt, 0); Vehicle.Wheels[1].Shape.SteeringAngle = angle; Vehicle.Wheels[3].Shape.SteeringAngle = angle; } else { angle = Math.Min(Vehicle.Wheels[1].Shape.SteeringAngle + TurnSpeed * dt, 0); Vehicle.Wheels[1].Shape.SteeringAngle = angle; Vehicle.Wheels[3].Shape.SteeringAngle = angle; } } #endif } else { //Parking brake foreach (Wheel wheel in Vehicle.Wheels) { wheel.Brake.IsBraking = true; } //Don't want the car to keep trying to drive. Vehicle.Wheels[1].DrivingMotor.TargetSpeed = 0; Vehicle.Wheels[3].DrivingMotor.TargetSpeed = 0; } }
public static Microsoft.Xna.Framework.Input.GamePadState GetState(PlayerIndex playerIndex, Microsoft.Xna.Framework.Input.GamePadDeadZone deadZoneMode) { var controller = GetController(playerIndex); if (!controller.IsConnected) return new GamePadState(); // GamePadState.IsConnected = false by default var gamepad = controller.GetState().Gamepad; Microsoft.Xna.Framework.Input.GamePadThumbSticks thumbSticks = new Microsoft.Xna.Framework.Input.GamePadThumbSticks( leftPosition: ConvertThumbStick(gamepad.LeftThumbX, gamepad.LeftThumbY, SharpDX.XInput.Gamepad.LeftThumbDeadZone, deadZoneMode), rightPosition: ConvertThumbStick(gamepad.RightThumbX, gamepad.RightThumbY, SharpDX.XInput.Gamepad.RightThumbDeadZone, deadZoneMode)); Microsoft.Xna.Framework.Input.GamePadTriggers triggers = new Microsoft.Xna.Framework.Input.GamePadTriggers( leftTrigger: gamepad.LeftTrigger / (float)byte.MaxValue, rightTrigger: gamepad.RightTrigger / (float)byte.MaxValue); Microsoft.Xna.Framework.Input.GamePadState state = new Microsoft.Xna.Framework.Input.GamePadState( thumbSticks: thumbSticks, triggers: triggers, buttons: ConvertToButtons( buttonFlags: gamepad.Buttons, leftThumbX: gamepad.LeftThumbX, leftThumbY: gamepad.LeftThumbY, rightThumbX: gamepad.RightThumbX, rightThumbY: gamepad.RightThumbY, leftTrigger: gamepad.LeftTrigger, rightTrigger: gamepad.RightTrigger), dPad: ConvertToGamePadDPad(gamepad.Buttons)); return state; }
internal XboxGamepadButtons(Microsoft.Xna.Framework.Input.GamePadState xnaState) { XboxInputLabel.Buttons buttons = XboxInputLabel.Buttons.None; if (xnaState.Buttons.A == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { buttons |= XboxInputLabel.Buttons.A; } if (xnaState.Buttons.B == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { buttons |= XboxInputLabel.Buttons.B; } if (xnaState.Buttons.X == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { buttons |= XboxInputLabel.Buttons.X; } if (xnaState.Buttons.Y == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { buttons |= XboxInputLabel.Buttons.Y; } if (xnaState.Buttons.LeftShoulder == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { buttons |= XboxInputLabel.Buttons.LB; } if (xnaState.Buttons.RightShoulder == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { buttons |= XboxInputLabel.Buttons.RB; } if (xnaState.Buttons.LeftStick == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { buttons |= XboxInputLabel.Buttons.LeftStick; } if (xnaState.Buttons.RightStick == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { buttons |= XboxInputLabel.Buttons.RightStick; } if (xnaState.Buttons.Back == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { buttons |= XboxInputLabel.Buttons.Back; } if (xnaState.Buttons.Start == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { buttons |= XboxInputLabel.Buttons.Start; } if (xnaState.Buttons.BigButton == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { buttons |= XboxInputLabel.Buttons.BigButton; } if (xnaState.DPad.Up == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { buttons |= XboxInputLabel.Buttons.DUp; } if (xnaState.DPad.Right == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { buttons |= XboxInputLabel.Buttons.DRight; } if (xnaState.DPad.Down == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { buttons |= XboxInputLabel.Buttons.DDown; } if (xnaState.DPad.Left == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { buttons |= XboxInputLabel.Buttons.DLeft; } Buttons = buttons; }
public void SetAndFireXInput(Xna.Input.GamePadState state, bool fCreateEvents) { List<Xna.Input.Buttons> buttons = new List<Xna.Input.Buttons>(6); foreach (Xna.Input.Buttons button in Enum.GetValues(typeof(Xna.Input.Buttons))) { if (state.IsButtonDown(button)) { buttons.Add(button); if (fCreateEvents && !this.m_currentXInputState.IsButtonDown(button)) { eventManager.FireKeyDownEvent(InputKey.Make(button)); } } } this.m_currentXInputState = state; }
public override void Move(Microsoft.Xna.Framework.Input.GamePadState Controller1) { SpritePosition = this.MoveStrategy.Move(SpritePosition, Controller1); }
/// <summary> /// Draws the background screen. /// </summary> public override void Draw(GameTime gameTime) { SpriteBatch spriteBatch = ScreenManager.SpriteBatch; Viewport viewport = ScreenManager.GraphicsDevice.Viewport; Rectangle fullscreen = new Rectangle(0, 0, viewport.Width, viewport.Height); byte fade = TransitionAlpha; spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend); spriteBatch.Draw(backgroundTexture, fullscreen, new Color(fade, fade, fade)); try { if (ScreenManager.GetScreens().Length <= 2) { for (int i = 0; i < Gamer.SignedInGamers.Count; i++) { Gamer.SignedInGamers[i].Presence.PresenceMode = GamerPresenceMode.AtMenu; } //menu screen updates should go right under this! //and drawing code too!! wow 2 in 1! // } // #if WINDOWS spriteBatch.DrawString(ScreenManager.Font, "v" + Global_Variables.version, new Vector2(1210, 690), Color.White, 0, Vector2.Zero, .6f, SpriteEffects.None, 0); #region Old entering code if (Guide.IsTrialMode == false) { Microsoft.Xna.Framework.Input.GamePadState gamepad1 = Microsoft.Xna.Framework.Input.GamePad.GetState(PlayerIndex.One); Microsoft.Xna.Framework.Input.GamePadState gamepad2 = Microsoft.Xna.Framework.Input.GamePad.GetState(PlayerIndex.Two); Microsoft.Xna.Framework.Input.GamePadState gamepad3 = Microsoft.Xna.Framework.Input.GamePad.GetState(PlayerIndex.Three); Microsoft.Xna.Framework.Input.GamePadState gamepad4 = Microsoft.Xna.Framework.Input.GamePad.GetState(PlayerIndex.Four); int numberplayersconnected = 0; if (gamepad1.IsConnected) { numberplayersconnected++; } if (gamepad2.IsConnected) { numberplayersconnected++; } if (gamepad3.IsConnected) { numberplayersconnected++; } if (gamepad4.IsConnected) { numberplayersconnected++; } if (numberplayersconnected > 1) { if (gamepad1.IsConnected && player1isplaying == false) { spriteBatch.DrawString(ScreenManager.Font , "\n\rPlayer 1: Press X To Enter!", new Vector2(Convert.ToInt32(ScreenManager.GraphicsDevice.Viewport.Width * .6) , ScreenManager.GraphicsDevice.Viewport.TitleSafeArea.Y + 5 ), Color.LightGreen); } else if (gamepad1.IsConnected && player1isplaying) { spriteBatch.DrawString(ScreenManager.Font , "\n\rPlayer 1: Press Y To Leave!", new Vector2(Convert.ToInt32(ScreenManager.GraphicsDevice.Viewport.Width * .6) , ScreenManager.GraphicsDevice.Viewport.TitleSafeArea.Y + 5 ), Color.LightGreen); } if (gamepad2.IsConnected && player2isplaying == false) { spriteBatch.DrawString(ScreenManager.Font , "\n\r\n\rPlayer 2: Press X To Enter!", new Vector2(Convert.ToInt32(ScreenManager.GraphicsDevice.Viewport.Width * .6) , ScreenManager.GraphicsDevice.Viewport.TitleSafeArea.Y + 5 ), Color.LightBlue); } else if (gamepad2.IsConnected && player2isplaying) { spriteBatch.DrawString(ScreenManager.Font , "\n\r\n\rPlayer 2: Press Y To Leave!", new Vector2(Convert.ToInt32(ScreenManager.GraphicsDevice.Viewport.Width * .6) , ScreenManager.GraphicsDevice.Viewport.TitleSafeArea.Y + 5 ), Color.LightBlue); } if (gamepad3.IsConnected && player3isplaying == false) { spriteBatch.DrawString(ScreenManager.Font , "\n\r\n\r\n\rPlayer 3: Press X To Enter!", new Vector2(Convert.ToInt32(ScreenManager.GraphicsDevice.Viewport.Width * .6) , ScreenManager.GraphicsDevice.Viewport.TitleSafeArea.Y + 5 ), Color.Yellow); } else if (gamepad3.IsConnected && player3isplaying) { spriteBatch.DrawString(ScreenManager.Font , "\n\r\n\r\n\rPlayer 3: Press Y To Leave!", new Vector2(Convert.ToInt32(ScreenManager.GraphicsDevice.Viewport.Width * .6) , ScreenManager.GraphicsDevice.Viewport.TitleSafeArea.Y + 5 ), Color.Yellow); } if (gamepad4.IsConnected && player4isplaying == false) { spriteBatch.DrawString(ScreenManager.Font , "\n\r\n\r\n\r\n\rPlayer 4: Press X To Enter!", new Vector2(Convert.ToInt32(ScreenManager.GraphicsDevice.Viewport.Width * .6) , ScreenManager.GraphicsDevice.Viewport.TitleSafeArea.Y + 5 ), Color.Purple); } else if (gamepad4.IsConnected && player4isplaying) { spriteBatch.DrawString(ScreenManager.Font , "\n\r\n\r\n\r\n\rPlayer 4: Press Y To Leave!", new Vector2(Convert.ToInt32(ScreenManager.GraphicsDevice.Viewport.Width * .6) , ScreenManager.GraphicsDevice.Viewport.TitleSafeArea.Y + 5 ), Color.White); } if (gamepad1.IsButtonDown(Microsoft.Xna.Framework.Input.Buttons.X)) { player1isplaying = true; } if (gamepad2.IsButtonDown(Microsoft.Xna.Framework.Input.Buttons.X)) { player2isplaying = true; } if (gamepad3.IsButtonDown(Microsoft.Xna.Framework.Input.Buttons.X)) { player3isplaying = true; } if (gamepad4.IsButtonDown(Microsoft.Xna.Framework.Input.Buttons.X)) { player4isplaying = true; } if (gamepad1.IsButtonDown(Microsoft.Xna.Framework.Input.Buttons.Y)) { player1isplaying = false; } if (gamepad2.IsButtonDown(Microsoft.Xna.Framework.Input.Buttons.Y)) { player2isplaying = false; } if (gamepad3.IsButtonDown(Microsoft.Xna.Framework.Input.Buttons.Y)) { player3isplaying = false; } if (gamepad4.IsButtonDown(Microsoft.Xna.Framework.Input.Buttons.Y)) { player4isplaying = false; } } } #endregion #endif } catch { } spriteBatch.End(); }