Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 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);
 }
Esempio n. 3
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);
        }
Esempio n. 4
0
 public override void HandleInput(Microsoft.Xna.Framework.Input.GamePadState gamePadState, Microsoft.Xna.Framework.Input.KeyboardState keyState, Microsoft.Xna.Framework.Input.MouseState mouseState)
 {
     //none?
 }
Esempio n. 5
0
        /// <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;
            }
        }
Esempio n. 6
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;
        }
Esempio n. 7
0
        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;
        }
Esempio n. 8
0
        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);
 }
Esempio n. 10
0
        /// <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();
        }