Example #1
0
 public Analog(GamePadTrigger _trigger, double _threshold = 0.1, double _pressedthreshold = 0.5)
 {
     this._Trigger          = _trigger;
     this._Threshold        = _threshold;
     this._PressedThreshold = _pressedthreshold;
     this._InputType        = 1;
 }
Example #2
0
 public GamePadTriggerInfo(GamePadController controller, GamePadTrigger trigger, float value, bool pressed, bool prevPressed)
 {
     this.controller  = controller;
     this.trigger     = trigger;
     this.value       = value;
     this.pressed     = pressed;
     this.prevPressed = prevPressed;
 }
Example #3
0
 public static float GetTriggerPosition(int gamePadIndex, GamePadTrigger trigger, float deadZone = 0f)
 {
     if (deadZone < 0f || deadZone >= 1f)
     {
         throw new ArgumentOutOfRangeException("deadZone");
     }
     if (IsConnected(gamePadIndex))
     {
         return(ApplyDeadZone(m_states[gamePadIndex].Triggers[(int)trigger], deadZone));
     }
     return(0f);
 }
        /// <summary>
        /// Creates a new GamePadTriggerBinding instance for the specified player's gamepad, bound to the specified trigger and with the provided minimum and maximum threshold values.
        /// </summary>
        /// <param name="player">Player whose gamepad will be bound.</param>
        /// <param name="trigger">Trigger to bind.</param>
        /// <param name="minimumThreshold">Minimum trigger value to match.</param>
        /// <param name="maximumThreshold">Maximum trigger value to match.</param>
        /// <remarks>Minimum and maximum threshold values must be in the range 0.0 .. 1.0, where increasing values indicate increasing pull on the trigger.</remarks>
        /// <exception cref="System.ArgumentOutOfRangeException">Thrown if minimumThreshold is greater than maximumThreshold.</exception>
        public GamePadTriggerMatcher(PlayerIndex player, GamePadTrigger trigger, float minimumThreshold, float maximumThreshold)
            : base(player)
        {
            if (minimumThreshold > maximumThreshold)
            {
                throw new ArgumentOutOfRangeException("minimumThreshold");
            }

            Player           = player;
            Trigger          = trigger;
            MinimumThreshold = minimumThreshold;
            MaximumThreshold = maximumThreshold;
        }
Example #5
0
        public static float GetTrigger(this GamePadState gamePad, GamePadTrigger gamePadTrigger)
        {
            switch (gamePadTrigger)
            {
            case GamePadTrigger.Left:
                return(gamePad.Triggers.Left);

            case GamePadTrigger.Right:
                return(gamePad.Triggers.Right);

            default:
                return(0.0f);
            }
        }
 /// <summary>
 /// Constructs an InputAction which tracks GamePad triggers.
 /// </summary>
 /// <param name="playerIndex">The index of the player using this input.</param>
 /// <param name="buttonAction">What state the button should be in to activate.</param>
 /// <param name="trigger">Which trigger to track.</param>
 /// <param name="deadZoneType">The type of dead zone.</param>
 /// <param name="deadZoneMin">The minimum Degree which will not be sensed.</param>
 /// <param name="deadZoneMax">The maximum Degree which will not be sensed.</param>
 public GamePadTriggerInputAction(
     PlayerIndex playerIndex,
     ButtonAction buttonAction,
     GamePadTrigger trigger,
     GamePadDeadZone deadZoneType,
     float deadZoneMin,
     float deadZoneMax)
     : base(playerIndex, buttonAction)
 {
     mGamePadTrigger = trigger;
     mGamePadDeadZone = deadZoneType;
     mDeadZoneMax = deadZoneMax;
     mDeadZoneMin = deadZoneMin;
 }
Example #7
0
        public float GetPadTriggerPosition(GamePadTrigger trigger, float deadZone = 0f)
        {
            if (m_isCleared)
            {
                return(0f);
            }
            float num = 0f;

            for (int i = 0; i < 4; i++)
            {
                if (((int)Devices & (8 << i)) != 0)
                {
                    num += GamePad.GetTriggerPosition(i, trigger, deadZone);
                }
            }
            return(MathUtils.Min(num, 1f));
        }
Example #8
0
        public override float GetGamePadTrigger(GamePadTrigger trigger, GamePadController controller, bool rawValue)
        {
            if (controller == GamePadController.None || trigger == GamePadTrigger.None)
            {
                return(0f);
            }

            string triggerName     = "";
            int    controllerIndex = (int)controller;

            if (controller == GamePadController.Any)
            {
                controllerIndex = 0;
            }

            switch (trigger)
            {
            case GamePadTrigger.Left:
                triggerName = "TriggersL_" + controllerIndex;
                break;

            case GamePadTrigger.Right:
                triggerName = "TriggersR_" + controllerIndex;
                break;
            }

            float triggerValue = 0f;

            try
            {
                if (!rawValue)
                {
                    triggerValue = UnityEngine.Input.GetAxis(triggerName);
                }
                else
                {
                    triggerValue = UnityEngine.Input.GetAxisRaw(triggerName);
                }
            }
            catch (System.Exception e)
            {
                Core.debug.Error(e.Message);
            }

            return(triggerValue);
        }
Example #9
0
        public PlayerShip(Node parent, string name)
            : base(parent, name)
        {
            Body.X = EntityGame.Viewport.Width / 2f;
            Body.Y = EntityGame.Viewport.Height / 2f;

            Physics.Drag        = 0.97f;
            Physics.AngularDrag = 0.9f;

            Render = new ImageRender(this, "Render");
            Render.SetTexture(GetRoot <State>().GetService <AssetCollector>().GetAsset <Texture2D>("ship"));
            Render.Layer = .01f;
            Render.Scale = new Vector2(.128f);
            Render.LinkDependency(ImageRender.DEPENDENCY_BODY, Body);

            Body.Bounds = Render.Bounds;
            Body.Origin = new Vector2(Render.Texture.Width / 2f, Render.Texture.Height / 2f);


            Gun = new SimpleGun(this, "SimpleGun");
            Gun.LinkDependency(SimpleGun.DEPENDENCY_BODY, Body);
            Gun.LinkDependency(SimpleGun.DEPENDENCY_PHYSICS, Physics);
            Shape        = new Circle(this, "Circle", Body.Width * .8f);
            Shape.Offset = new Vector2(Body.Width / 2, Body.Height / 2);
            Shape.Debug  = true;
            Shape.LinkDependency(Circle.DEPENDENCY_BODY, Body);

            Collision.Group.AddMask(0);
            Collision.Pair.AddMask(2);
            Collision.CollideEvent += OnCollide;
            Collision.Immovable     = true;
            Collision.LinkDependency(Collision.DEPENDENCY_SHAPE, Shape);
            Shape.LinkDependency(Circle.DEPENDENCY_COLLISION, Collision);


            //Control
            UpButton      = new DoubleInput(this, "UpButton", Keys.W, Buttons.DPadUp, PlayerIndex.One);
            DownButton    = new DoubleInput(this, "DownButton", Keys.S, Buttons.DPadDown, PlayerIndex.One);
            LeftButton    = new DoubleInput(this, "LeftButton", Keys.A, Buttons.DPadLeft, PlayerIndex.One);
            RightButton   = new DoubleInput(this, "RightButton", Keys.D, Buttons.DPadRight, PlayerIndex.One);
            FireButton    = new DoubleInput(this, "FireButton", Keys.Space, Buttons.A, PlayerIndex.One);
            ThrustTrigger = new GamePadTrigger(this, "ThrustTrigger", Triggers.Right, PlayerIndex.One);
            //GravityTrigger = new GamePadTrigger(this, "GravityTrigger", Triggers.Left, PlayerIndex.One);

            LookAnalog = new GamePadAnalog(this, "LookAnalog", Sticks.Left, PlayerIndex.One);
        }
Example #10
0
        public void AddGamePadTrigger(Identifier action, GamePadTrigger trigger, GamePadController controller = GamePadController.Any, PlayerId player = PlayerId.Player1)
        {
            var actionId           = new InputActionId(action, player);
            var gamePadTriggerInfo = new GamePadTriggerInfo(controller, trigger, 0f, false, false);

            if (gamePadTriggerBindings.ContainsKey(actionId))
            {
                gamePadTriggerBindings[actionId].Add(gamePadTriggerInfo);
            }
            else
            {
                var newList = new List <GamePadTriggerInfo>()
                {
                    gamePadTriggerInfo
                };
                gamePadTriggerBindings.Add(actionId, newList);
            }
        }
        /// <summary>
        /// Gets a trigger sprite frame from "Sprites\UI\controller.png"
        /// </summary>
        /// <param name="trigger">The trigger mapped to the sprite.</param>
        public static Sprite GetIcon(GamePadTrigger trigger)
        {
            int iconPath;

            switch (trigger)
            {
            case GamePadTrigger.Right:
                iconPath = 71;
                break;

            case GamePadTrigger.Left:
                iconPath = 70;
                break;

            default:
                throw new ArgumentOutOfRangeException("trigger", trigger, null);
            }

            return(Resources.LoadAll <Sprite>(GamePadIconHelper.ControllerSpritePath)[iconPath]);
        }
Example #12
0
 public GamePadTriggerInput(GamePadTrigger trigger, PlayerIndex playerIndex = PlayerIndex.One)
 {
     PlayerIndex = playerIndex;
     Trigger = trigger;
 }
Example #13
0
 /// <summary>
 /// Release trigger stored in the polling handler. This occurs whenever a trigger is
 /// literally released by a player.
 /// </summary>
 /// <param name="trigger"><see cref="GamePadTrigger"/> to release, holds trigger type and player index</param>
 private void ReleaseTrigger(GamePadTrigger trigger)
 {
     this.triggers[(int)trigger.Player, (int)trigger.TriggerType] = 0.0f;
 }
        /// <summary>
        /// Creates a new GamePadTriggerBinding instance for the specified player's gamepad, bound to the specified trigger and with the provided minimum and maximum threshold values.
        /// </summary>
        /// <param name="player">Player whose gamepad will be bound.</param>
        /// <param name="trigger">Trigger to bind.</param>
        /// <param name="minimumThreshold">Minimum trigger value to match.</param>
        /// <param name="maximumThreshold">Maximum trigger value to match.</param>
        /// <remarks>Minimum and maximum threshold values must be in the range 0.0 .. 1.0, where increasing values indicate increasing pull on the trigger.</remarks>
        /// <exception cref="System.ArgumentOutOfRangeException">Thrown if minimumThreshold is greater than maximumThreshold.</exception>
        public GamePadTriggerMatcher(PlayerIndex player, GamePadTrigger trigger, float minimumThreshold, float maximumThreshold)
            : base(player)
        {
            if (minimumThreshold > maximumThreshold)
            {
                throw new ArgumentOutOfRangeException("minimumThreshold");
            }

            Player = player;
            Trigger = trigger;
            MinimumThreshold = minimumThreshold;
            MaximumThreshold = maximumThreshold;
        }
Example #15
0
 public abstract float GetGamePadTrigger(GamePadTrigger trigger, GamePadController controller    = GamePadController.Any, bool rawValue = false);