예제 #1
1
		public void Update(PlayerButton input, Facing facing, Boolean paused)
		{
			m_inputbuffer.Add(input, facing);

			if (paused == false)
			{
				foreach (BufferCount count in m_commandcount.Values) count.Tick();
			}

			foreach (Command command in Commands)
			{
				if (command.IsValid == false) continue;

				if (CommandChecker.Check(command, m_inputbuffer) == true)
				{
					Int32 time = command.BufferTime;
					if (paused == true) ++time;

					m_commandcount[command.Name].Set(time);
				}
			}

			m_activecommands.Clear();
			foreach (var data in m_commandcount) if (data.Value.IsActive == true) m_activecommands.Add(data.Key);
		}
예제 #2
0
		public void Add(PlayerButton input, Facing facing)
		{
			if (facing == Facing.Left)
			{
				if (((input & PlayerButton.Left) == PlayerButton.Left) != ((input & PlayerButton.Right) == PlayerButton.Right))
				{
					input ^= PlayerButton.Left;
					input ^= PlayerButton.Right;
				}
			}

			if (((input & PlayerButton.Up) == PlayerButton.Up) && ((input & PlayerButton.Down) == PlayerButton.Down))
			{
				input &= ~PlayerButton.Up;
				input &= ~PlayerButton.Down;
			}

			if (((input & PlayerButton.Left) == PlayerButton.Left) && ((input & PlayerButton.Right) == PlayerButton.Right))
			{
				input &= ~PlayerButton.Left;
				input &= ~PlayerButton.Right;
			}

			m_buffer.Add(input);
			m_size = m_buffer.Size;
		}
예제 #3
0
        public void Add(PlayerButton button, Action<Boolean> callback)
        {
            if (button == PlayerButton.None) throw new ArgumentOutOfRangeException("button");
            if (callback == null) throw new ArgumentNullException("callback");

            m_callbackmap[(Int32)button] = callback;
        }
예제 #4
0
 public RecordingData(Int32 system, Int32 player1, Int32 player2, Int32 player3, Int32 player4)
 {
     SystemInput = (SystemButton)system;
     Player1Input = (PlayerButton)player1;
     Player2Input = (PlayerButton)player2;
     Player3Input = (PlayerButton)player3;
     Player4Input = (PlayerButton)player4;
 }
예제 #5
0
		public override void RecieveInput(PlayerButton button, Boolean pressed)
		{
			base.RecieveInput(button, pressed);

			foreach (Entity entity in Engine.Entities)
			{
				Helper helper = entity as Helper;
				if (helper == null || helper.BasePlayer != this) continue;

				helper.RecieveInput(button, pressed);
			}
		}
예제 #6
0
        public void Call(PlayerButton button, Boolean pressed)
        {
            if (button == PlayerButton.None) throw new ArgumentOutOfRangeException("button");

            if (m_callback != null)
            {
                m_callback(button, pressed);
            }
            else
            {
                Action<Boolean> callback;
                if (m_callbackmap.TryGetValue((Int32)button, out callback) == true) callback(pressed);
            }
        }
예제 #7
0
        public override void RecieveInput(PlayerButton button, Boolean pressed)
        {
            base.RecieveInput(button, pressed);

            foreach (Entity entity in Engine.Entities)
            {
                Helper helper = entity as Helper;
                if (helper == null || helper.BasePlayer != this)
                {
                    continue;
                }

                helper.RecieveInput(button, pressed);
            }
        }
예제 #8
0
    private GameObject getTargetCell(PlayerButton playerButton)
    {
        GameObject tmpCell;
        int        currentCellId = playerButton.cellNum;

        if (cellsWithLeather.Contains(currentCellId + 1) || currentCellId == 0 || currentCellId == 1)
        {
            tmpCell = cellPath[currentCellId + 2];
        }
        else
        {
            tmpCell = cellPath[currentCellId + 1];
        }
        return(tmpCell);
    }
예제 #9
0
            private void TogglePage(int page, bool show)
            {
                IntVector2 range = pages[page];

                for (int i = range.x; i < range.y; i++)
                {
                    PlayerButton btn = buttons[i];
                    if (show)
                    {
                        btn.Show();
                    }
                    else
                    {
                        btn.Hide();
                    }
                }
            }
예제 #10
0
    internal bool ButtonDown(PlayerButton button)
    {
        switch (button)
        {
        case PlayerButton.Attack:
            return(attackPressed);

        case PlayerButton.SpecialAttack:
            return(specialAttackPressed);

        case PlayerButton.Jump:
            return(jumpPressed);

        default:
            return(false);
        }
    }
예제 #11
0
        public void SetInput(Input.InputState inputstate)
        {
            if (inputstate == null)
            {
                throw new ArgumentNullException("inputstate");
            }

            foreach (PlayerButton button in Enum.GetValues(typeof(PlayerButton)))
            {
                PlayerButton b = button;

                inputstate[1].Add(b, x => Team1.MainPlayer.RecieveInput(b, x));
                inputstate[2].Add(b, x => Team2.MainPlayer.RecieveInput(b, x));
            }

            inputstate[0].Add(SystemButton.FullLifeAndPower, RestoreLifeAndPower);
            inputstate[0].Add(SystemButton.TestCheat, Tester);
        }
예제 #12
0
        public void Call(PlayerButton button, bool pressed)
        {
            if (button == PlayerButton.None)
            {
                throw new ArgumentOutOfRangeException(nameof(button));
            }

            if (m_callback != null)
            {
                m_callback(button, pressed);
            }
            else
            {
                Action <bool> callback;
                if (m_callbackmap.TryGetValue((int)button, out callback))
                {
                    callback(pressed);
                }
            }
        }
예제 #13
0
        public void Call(PlayerButton button, Boolean pressed)
        {
            if (button == PlayerButton.None)
            {
                throw new ArgumentOutOfRangeException("button");
            }

            if (m_callback != null)
            {
                m_callback(button, pressed);
            }
            else
            {
                Action <Boolean> callback;
                if (m_callbackmap.TryGetValue((Int32)button, out callback) == true)
                {
                    callback(pressed);
                }
            }
        }
    public ButtonState GetButton(PlayerButton button)
    {
        string buttonName = button.ToString();

        if (Input.GetButtonDown(buttonName))
        {
            return(ButtonState.Down);
        }
        if (Input.GetButtonUp(buttonName))
        {
            return(ButtonState.Up);
        }

        if (Input.GetButton(buttonName))
        {
            return(ButtonState.Hold);
        }

        return(ButtonState.None);
    }
 public static bool isButtonDown(PlayerButton button)
 {
     if (game_controllers_locked)
     {
         return(isButtonDownConfirm(button, current_game_pad));
     }
     else
     {
         for (int i = 0; i < game_pad_state.Length; i++)
         {
             button_pushed = isButtonDownConfirm(button, i);
             if (button_pushed)
             {
                 Console.WriteLine("Button was pushed: " + button_pushed);
                 return(true);
             }
         }
         return(false);
     }
 }
예제 #16
0
    public void DeleteNPC()
    {
        if (activeNPC != null)
        {
            PlayerButton _button = activeNPC.button;

            //This (probablly?) creates garbage
            activeNPC = null;

            foreach (DamageSquare square in dmgSquares)
            {
                square.ClearSpots();
            }
            bleedingSquare.ClearSpots();


            Destroy(_button.gameObject);

            ToggleAreYouSurePanel(false);
        }
    }
예제 #17
0
        public void Update(PlayerButton input, Facing facing, bool paused)
        {
            m_inputbuffer.Add(input, facing);

            if (paused == false)
            {
                foreach (var count in m_commandcount.Values)
                {
                    count.Tick();
                }
            }

            foreach (var command in Commands)
            {
                if (command.IsValid == false)
                {
                    continue;
                }

                if (CommandChecker.Check(command, m_inputbuffer))
                {
                    var time = command.BufferTime;
                    if (paused)
                    {
                        ++time;
                    }

                    m_commandcount[command.Name].Set(time);
                }
            }

            m_activecommands.Clear();
            foreach (var data in m_commandcount)
            {
                if (data.Value.IsActive)
                {
                    m_activecommands.Add(data.Key);
                }
            }
        }
예제 #18
0
        public Boolean AreIdentical(Int32 start, Int32 end)
        {
            if (start < 0 || start >= Size)
            {
                throw new ArgumentOutOfRangeException("start");
            }
            if (end < 0 || end >= Size)
            {
                throw new ArgumentOutOfRangeException("end");
            }

            PlayerButton match = m_buffer.ReverseGet(start);

            for (Int32 i = start + 1; i < end; ++i)
            {
                if (match != m_buffer.ReverseGet(i))
                {
                    return(false);
                }
            }

            return(true);
        }
예제 #19
0
    public IEnumerator SmoothMove(GameObject player, int cellCount)
    {
        int targetCellNum = player.GetComponent <PlayerButton>().cellNum + 1;

        if (targetCellNum < 64)
        {
            PlayerButton playerButton = player.GetComponent <PlayerButton>();
            playerButton.isMoving = true;
            GameObject tmpCell  = getTargetCell(playerButton);
            float      currTime = 0;
            do
            {
                player.transform.position = Vector3.Lerp(player.transform.position, tmpCell.transform.position, currTime / playerSpeed);
                currTime += Time.deltaTime;
                yield return(null);
            }while (currTime <= playerSpeed);
            player.GetComponent <Transform>().SetParent(tmpCell.transform, true);
            playerButton.cellNum = tmpCell.GetComponent <TimeFieldCellScript>().id;
            if (cellsWithButtons.Contains(playerButton.cellNum))
            {
                int numberOfButtons = gameContoller.GetComponent <GameControl>().ActivePlayerGetButtonsFromField();
                CreateButtonPopup(numberOfButtons, tmpCell);
            }
            if (finishCells.Contains(playerButton.cellNum))
            {
                gameContoller.GetComponent <GameControl>().ActivePlayerRichFinish();
            }
            if (cellCount > 1)
            {
                StartCoroutine(SmoothMove(player, cellCount - 1));
            }
            else
            {
                StartCoroutine(WaitAndDisableTimeFeild(timeBeforeDisable, player));
            }
        }
    }
예제 #20
0
파일: Main.cs 프로젝트: MarkVDZ/MTGLifeApp
    public void AddPlayer()
    {
        PlayerData data = new PlayerData();

        players.Add(data);
        data.playerName = "Player " + players.Count;
        GameObject newButton = GameObject.Instantiate(prefab);

        newButton.transform.SetParent(contentPanel);

        PlayerButton playerButton = newButton.GetComponent <PlayerButton>();

        playerButton.Setup(data, this);

        //old stuff
        //Player newPlayer = new Player();
        //newPlayer.name = "Player " + players.Count;
        //GameObject newButton = Instantiate(playerButton);
        //newButton.transform.SetParent(removePlayerPanel.transform);
        //newButton.GetComponent<Text>().text = newPlayer.name;
        //players.Add(newPlayer);
        //print(players.Count);
        //print(newButton.GetComponent<Player>().name);
    }
예제 #21
0
        public void SetInput(Input.InputState inputstate)
        {
            if (inputstate == null)
            {
                throw new ArgumentNullException("inputstate");
            }

            foreach (PlayerButton button in Enum.GetValues(typeof(PlayerButton)))
            {
                PlayerButton buttonindex = button;

                inputstate[1].Add(buttonindex, x => RecieveInput((Int32)buttonindex, 1, x));
                inputstate[2].Add(buttonindex, x => RecieveInput((Int32)buttonindex, 2, x));
                inputstate[3].Add(buttonindex, x => RecieveInput((Int32)buttonindex, 3, x));
                inputstate[4].Add(buttonindex, x => RecieveInput((Int32)buttonindex, 4, x));
            }

            foreach (SystemButton button in Enum.GetValues(typeof(SystemButton)))
            {
                SystemButton buttonindex = button;

                inputstate[0].Add(buttonindex, x => RecieveInput((Int32)buttonindex, 0, x));
            }
        }
예제 #22
0
    /// <summary>
    /// Remaps/Updates the Keyboard Axis/Button dictionaries with a new key
    /// </summary>
    /// <param name="buttonKey"></param>
    /// <param name="key"></param>
    /// <param name="player"></param>
    public static void RemapKeyboardButton(PlayerButton button, KeyCode key, IInputPlayer player)
    {
        string buttonKey = button.ToString();

        if (player == null)
        {
            return;
        }
        else
        {
            if (keyboardAxisDictList[player.PlayerIndex + 1].ContainsKey(buttonKey))
            {
                keyboardAxisDictList[player.PlayerIndex + 1][buttonKey] = key;
            }
            else if (keyboardButtonDictList[player.PlayerIndex + 1].ContainsKey(buttonKey))
            {
                keyboardButtonDictList[player.PlayerIndex + 1][buttonKey] = key;
            }
            else
            {
                Debug.InputLog("No keyboard dictionary contains the key: " + buttonKey, Debug.LogType.Warning);
            }
        }
    }
예제 #23
0
 public bool IsDown(PlayerButton button)
 {
     return((current & (InputState)(1u << (int)button)) != 0);
 }
예제 #24
0
 Boolean GetButtonState(PlayerButton inputelement, CommandElement commandelement)
 {
     return(((inputelement & commandelement.MatchHash1) == commandelement.MatchHash1) && ((inputelement & commandelement.MatchHash2) == 0));
 }
예제 #25
0
		Boolean GetButtonState(PlayerButton inputelement, CommandElement commandelement)
		{
			return ((inputelement & commandelement.MatchHash1) == commandelement.MatchHash1) && ((inputelement & commandelement.MatchHash2) == 0);
		}
예제 #26
0
        public bool GetButtonUp(PlayerButton button)
        {
            _state = GamePad.GetState(_index);

            if (_scheme.IsGamepad)
            {
                switch (button)
                {
                case PlayerButton.A:
                    if (_scheme.IsRightPlayer)
                    {
                        return(GamePad.GetButtonUp(GamePad.Button.A, _index));
                    }
                    else
                    {
                        if (_wasAPressed)
                        {
                            if (!_state.Down)
                            {
                                _wasAPressed = false;
                                return(true);
                            }
                            else
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            return(false);
                        }
                    }

                case PlayerButton.B:
                    if (_scheme.IsRightPlayer)
                    {
                        return(GamePad.GetButtonUp(GamePad.Button.B, _index));
                    }
                    else
                    {
                        if (_wasBPressed)
                        {
                            if (!_state.Right)
                            {
                                _wasBPressed = false;
                                return(true);
                            }
                            else
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            return(false);
                        }
                    }

                case PlayerButton.X:
                    if (_scheme.IsRightPlayer)
                    {
                        return(GamePad.GetButtonUp(GamePad.Button.X, _index));
                    }
                    else
                    {
                        if (_wasXPressed)
                        {
                            if (!_state.Left)
                            {
                                _wasXPressed = false;
                                return(true);
                            }
                            else
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            return(false);
                        }
                    }

                case PlayerButton.Y:
                    if (_scheme.IsRightPlayer)
                    {
                        return(GamePad.GetButtonUp(GamePad.Button.Y, _index));
                    }
                    else
                    {
                        if (_wasYPressed)
                        {
                            if (!_state.Up)
                            {
                                _wasYPressed = false;
                                return(true);
                            }
                            else
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            return(false);
                        }
                    }

                default:
                    throw new ArgumentOutOfRangeException("button", button, null);
                }
            }
            else
            {
                switch (button)
                {
                case PlayerButton.A:
                    return(Input.GetKeyUp(_scheme.ButtonA));

                case PlayerButton.B:
                    return(Input.GetKeyUp(_scheme.ButtonB));

                case PlayerButton.X:
                    return(Input.GetKeyUp(_scheme.ButtonX));

                case PlayerButton.Y:
                    return(Input.GetKeyUp(_scheme.ButtonY));

                default:
                    throw new ArgumentOutOfRangeException("button", button, null);
                }
            }
        }
예제 #27
0
		public virtual void RecieveInput(PlayerButton button, Boolean pressed)
		{
			if (pressed)
			{
				m_currentinput |= button;
			}
			else
			{
				m_currentinput &= ~button;
			}
		}
예제 #28
0
 public ButtonState GetButton(PlayerButton button)
 {
     return(ButtonState.None);
 }
예제 #29
0
 /// <summary>
 /// Initializes a new instance of this class for a player ButtonMap.
 /// </summary>
 /// <param name="buttonmap">The index of the ButtonMap.</param>
 /// <param name="button">The PlayerButton to reference.</param>
 public ButtonWrapper(int buttonmap, PlayerButton button)
 {
     MapIndex    = buttonmap;
     ButtonIndex = (int)button;
 }
예제 #30
0
        PlayerButton BuildHash2()
        {
            PlayerButton hash = 0;

            switch (Direction)
            {
            case CommandDirection.B:
                hash |= PlayerButton.Up;
                hash |= PlayerButton.Down;
                hash |= PlayerButton.Right;
                break;

            case CommandDirection.DB:
                hash |= PlayerButton.Up;
                hash |= PlayerButton.Right;
                break;

            case CommandDirection.D:
                hash |= PlayerButton.Up;
                hash |= PlayerButton.Left;
                hash |= PlayerButton.Right;
                break;

            case CommandDirection.DF:
                hash |= PlayerButton.Up;
                hash |= PlayerButton.Left;
                break;

            case CommandDirection.F:
                hash |= PlayerButton.Up;
                hash |= PlayerButton.Down;
                hash |= PlayerButton.Left;
                break;

            case CommandDirection.UF:
                hash |= PlayerButton.Down;
                hash |= PlayerButton.Left;
                break;

            case CommandDirection.U:
                hash |= PlayerButton.Left;
                hash |= PlayerButton.Down;
                hash |= PlayerButton.Right;
                break;

            case CommandDirection.UB:
                hash |= PlayerButton.Down;
                hash |= PlayerButton.Right;
                break;

            case CommandDirection.B4Way:
            case CommandDirection.U4Way:
            case CommandDirection.F4Way:
            case CommandDirection.D4Way:
            case CommandDirection.None:
            default:
                break;
            }

            return(hash);
        }
예제 #31
0
        PlayerButton BuildHash1()
        {
            PlayerButton hash = 0;

            switch (Direction)
            {
            case CommandDirection.B4Way:
            case CommandDirection.B:
                hash |= PlayerButton.Left;
                break;

            case CommandDirection.DB:
                hash |= PlayerButton.Down;
                hash |= PlayerButton.Left;
                break;

            case CommandDirection.D4Way:
            case CommandDirection.D:
                hash |= PlayerButton.Down;
                break;

            case CommandDirection.DF:
                hash |= PlayerButton.Down;
                hash |= PlayerButton.Right;
                break;

            case CommandDirection.F4Way:
            case CommandDirection.F:
                hash |= PlayerButton.Right;
                break;

            case CommandDirection.UF:
                hash |= PlayerButton.Up;
                hash |= PlayerButton.Right;
                break;

            case CommandDirection.U4Way:
            case CommandDirection.U:
                hash |= PlayerButton.Up;
                break;

            case CommandDirection.UB:
                hash |= PlayerButton.Up;
                hash |= PlayerButton.Left;
                break;

            case CommandDirection.None:
            default:
                break;
            }

            if ((Buttons & CommandButton.A) == CommandButton.A)
            {
                hash |= PlayerButton.A;
            }
            if ((Buttons & CommandButton.B) == CommandButton.B)
            {
                hash |= PlayerButton.B;
            }
            if ((Buttons & CommandButton.C) == CommandButton.C)
            {
                hash |= PlayerButton.C;
            }
            if ((Buttons & CommandButton.X) == CommandButton.X)
            {
                hash |= PlayerButton.X;
            }
            if ((Buttons & CommandButton.Y) == CommandButton.Y)
            {
                hash |= PlayerButton.Y;
            }
            if ((Buttons & CommandButton.Z) == CommandButton.Z)
            {
                hash |= PlayerButton.Z;
            }
            if ((Buttons & CommandButton.Taunt) == CommandButton.Taunt)
            {
                hash |= PlayerButton.Taunt;
            }

            return(hash);
        }
예제 #32
0
 /// <summary>
 /// Initializes a new instance of this class for a player ButtonMap.
 /// </summary>
 /// <param name="buttonmap">The index of the ButtonMap.</param>
 /// <param name="button">The PlayerButton to reference.</param>
 public ButtonWrapper(Int32 buttonmap, PlayerButton button)
 {
     m_buttonmap = buttonmap;
     m_button = (Int32)button;
 }
        private static bool isButtonDownConfirm(PlayerButton button, int control_number)
        {
            switch (button)
            {
            case PlayerButton.UpDirection:
                if (game_pad_state[control_number].DPad.Up == ButtonState.Pressed || game_pad_state[control_number].ThumbSticks.Left.Y > 0.0 || key_board_state.IsKeyDown(Keys.Up))
                {
                    return(true);
                }
                break;

            case PlayerButton.DownDirection:
                if (game_pad_state[control_number].DPad.Down == ButtonState.Pressed || game_pad_state[control_number].ThumbSticks.Left.Y < 0.0 || key_board_state.IsKeyDown(Keys.Down))
                {
                    return(true);
                }
                break;

            case PlayerButton.LeftDirection:
                if (game_pad_state[control_number].DPad.Left == ButtonState.Pressed || game_pad_state[control_number].ThumbSticks.Left.X < 0.0 || key_board_state.IsKeyDown(Keys.Left))
                {
                    return(true);
                }
                break;

            case PlayerButton.RightDirection:
                if (game_pad_state[control_number].DPad.Right == ButtonState.Pressed || game_pad_state[control_number].ThumbSticks.Left.X > 0.0 || key_board_state.IsKeyDown(Keys.Right))
                {
                    return(true);
                }
                break;

            case PlayerButton.Confirm:
                if (game_pad_state[control_number].Buttons.A == ButtonState.Pressed || key_board_state.IsKeyDown(Keys.Enter))
                {
                    return(true);
                }
                break;

            case PlayerButton.Cancel:
                if (game_pad_state[control_number].Buttons.B == ButtonState.Pressed || key_board_state.IsKeyDown(Keys.Escape) || key_board_state.IsKeyDown(Keys.Back))
                {
                    return(true);
                }
                break;

            case PlayerButton.UseItem1:
                if (game_pad_state[control_number].Triggers.Left > 0.0 || key_board_state.IsKeyDown(Keys.A) || game_pad_state[control_number].Buttons.A == ButtonState.Pressed)
                {
                    return(true);
                }
                break;

            case PlayerButton.UseItem2:
                if (game_pad_state[control_number].Triggers.Right > 0.0 || key_board_state.IsKeyDown(Keys.S) || game_pad_state[control_number].Buttons.B == ButtonState.Pressed)
                {
                    return(true);
                }
                break;

            case PlayerButton.SwitchItem1:
                if (game_pad_state[control_number].Buttons.LeftShoulder == ButtonState.Pressed || key_board_state.IsKeyDown(Keys.Q) || game_pad_state[control_number].Buttons.X == ButtonState.Pressed)
                {
                    return(true);
                }
                break;

            case PlayerButton.SwitchItem2:
                if (game_pad_state[control_number].Buttons.RightShoulder == ButtonState.Pressed || key_board_state.IsKeyDown(Keys.W) || game_pad_state[control_number].Buttons.Y == ButtonState.Pressed)
                {
                    return(true);
                }
                break;

            case PlayerButton.PauseButton:
                if (game_pad_state[control_number].Buttons.Start == ButtonState.Pressed || key_board_state.IsKeyDown(Keys.Enter))
                {
                    return(true);
                }
                break;

            case PlayerButton.BackButton:
                if (game_pad_state[control_number].Buttons.Back == ButtonState.Pressed || key_board_state.IsKeyDown(Keys.Back))
                {
                    return(true);
                }
                break;

            case PlayerButton.AnyButton:
                if (game_pad_state[control_number].Buttons.A == ButtonState.Pressed || game_pad_state[control_number].Buttons.A == ButtonState.Pressed || game_pad_state[control_number].Buttons.B == ButtonState.Pressed || game_pad_state[control_number].Buttons.Y == ButtonState.Pressed || game_pad_state[control_number].Buttons.X == ButtonState.Pressed || game_pad_state[control_number].Buttons.Back == ButtonState.Pressed || game_pad_state[control_number].Buttons.Start == ButtonState.Pressed || game_pad_state[control_number].Buttons.RightShoulder == ButtonState.Pressed || game_pad_state[control_number].Buttons.LeftShoulder == ButtonState.Pressed || game_pad_state[control_number].Buttons.RightStick == ButtonState.Pressed || game_pad_state[control_number].Buttons.LeftStick == ButtonState.Pressed || key_board_state.IsKeyDown(Keys.Enter))
                {
                    return(true);
                }
                break;

            default:
                return(false);
            }
            return(false);
        }
예제 #34
0
 public static void SetAction(string actionName, Buttons button, PlayerIndex playerIndex = PlayerIndex.One)
 {
     buttonDict[actionName] = new PlayerButton {
         playerIndex = playerIndex, button = button
     };
 }
예제 #35
0
        /// <summary>
        /// Checks if a button is pressed for a specified Player.
        /// </summary>
        /// <param name="player">The assigned player index to check.</param>
        /// <param name="button">The button to poll.</param>
        /// <returns>True if the button for the player's device is pressed.</returns>
        public static bool IsPlayerButtonDown(PPG_Player player, PlayerButton button)
        {
            if (bindings[(int)player] == PlayerPad.Keyboard)
            {
                switch (button)
                {
                case PlayerButton.Confirm:
                    if (keyboardController.IsKeyDown(keyConfig.Confirm))
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.Cancel:
                    if (keyboardController.IsKeyDown(keyConfig.Cancel))
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.PauseButton:
                    if (keyboardController.IsKeyDown(keyConfig.PauseButton))
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.BackButton:
                    if (keyboardController.IsKeyDown(keyConfig.BackButton))
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.UseItem2:
                    if (keyboardController.IsKeyDown(keyConfig.UseLeftItem))
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.UseItem1:
                    if (keyboardController.IsKeyDown(keyConfig.UseRightItem))
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.SwitchItem1:
                    if (keyboardController.IsKeyDown(keyConfig.SwitchItem1))
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.SwitchItem2:
                    if (keyboardController.IsKeyDown(keyConfig.SwitchItem2))
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.DownDirection:
                    if (keyboardController.IsKeyDown(keyConfig.DownDirection))
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.UpDirection:
                    if (keyboardController.IsKeyDown(keyConfig.UpDirection))
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.LeftDirection:
                    if (keyboardController.IsKeyDown(keyConfig.LeftDirection))
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.RightDirection:
                    if (keyboardController.IsKeyDown(keyConfig.RightDirection))
                    {
                        return(true);
                    }
                    break;
                }
            }
            else if ((int)bindings[(int)player] > -1)
            {
                GamePadState state = xInputControllers[(int)bindings[(int)player]];

                switch (button)
                {
                case PlayerButton.Confirm:
                    if (state.Buttons.A == ButtonState.Pressed)
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.Cancel:
                    if (state.Buttons.B == ButtonState.Pressed)
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.PauseButton:
                    if (state.Buttons.Start == ButtonState.Pressed)
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.BackButton:
                    if (state.Buttons.Back == ButtonState.Pressed)
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.UseItem2:
                    if (state.Buttons.A == ButtonState.Pressed || state.Triggers.Left > 0.01f)
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.UseItem1:
                    if (state.Buttons.B == ButtonState.Pressed || state.Triggers.Right > 0.01f)
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.SwitchItem1:
                    if (state.Buttons.X == ButtonState.Pressed || state.Buttons.RightShoulder == ButtonState.Pressed)
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.SwitchItem2:
                    if (state.Buttons.Y == ButtonState.Pressed || state.Buttons.LeftShoulder == ButtonState.Pressed)
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.DownDirection:
                    if (state.DPad.Down == ButtonState.Pressed || state.ThumbSticks.Left.Y < 0)
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.UpDirection:
                    if (state.DPad.Up == ButtonState.Pressed || state.ThumbSticks.Left.Y > 0)
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.LeftDirection:
                    if (state.DPad.Left == ButtonState.Pressed || state.ThumbSticks.Left.X < 0)
                    {
                        return(true);
                    }
                    break;

                case PlayerButton.RightDirection:
                    if (state.DPad.Right == ButtonState.Pressed || state.ThumbSticks.Left.X > 0)
                    {
                        return(true);
                    }
                    break;
                }
            }

            return(false);
        }
예제 #36
0
        /// <summary>
        /// Polls the hardware for any input press. Useful for getting the player's controller index.
        /// </summary>
        /// <param name="button">The button you would like to poll.</param>
        /// <returns>The PlayerPad corresponding with a connected input device that pressed the specified button. Will return PlayerPad.NoPad if no devices are pressing the specified button.</returns>
        /// <remarks>If two input devices are pressing the same button simeltaneously, this method will return the device with the higher index. The keyboard's index is considered to be in between 1 and 2.</remarks>
        public static PlayerPad IsAnyControllerButtonDown(PlayerButton button)
        {
            for (int i = 0; i < 4; i++)
            {
                GamePadState state = xInputControllers[i];

                switch (button)
                {
                case PlayerButton.Confirm:
                    if (xInputControllers[i].Buttons.A == ButtonState.Pressed)
                    {
                        return(GamePadIndexToPlayerPad((PlayerIndex)i));
                    }
                    if (keyboardController.IsKeyDown(keyConfig.Confirm))
                    {
                        return(PlayerPad.Keyboard);
                    }
                    break;

                case PlayerButton.Cancel:
                    if (xInputControllers[i].Buttons.B == ButtonState.Pressed)
                    {
                        return(GamePadIndexToPlayerPad((PlayerIndex)i));
                    }
                    if (keyboardController.IsKeyDown(keyConfig.Cancel))
                    {
                        return(PlayerPad.Keyboard);
                    }
                    break;

                case PlayerButton.PauseButton:
                    if (xInputControllers[i].Buttons.Start == ButtonState.Pressed)
                    {
                        return(GamePadIndexToPlayerPad((PlayerIndex)i));
                    }
                    if (keyboardController.IsKeyDown(keyConfig.PauseButton))
                    {
                        return(PlayerPad.Keyboard);
                    }
                    break;

                case PlayerButton.BackButton:
                    if (xInputControllers[i].Buttons.Back == ButtonState.Pressed)
                    {
                        return(GamePadIndexToPlayerPad((PlayerIndex)i));
                    }
                    if (keyboardController.IsKeyDown(keyConfig.BackButton))
                    {
                        return(PlayerPad.Keyboard);
                    }
                    break;

                case PlayerButton.UseItem2:
                    if (xInputControllers[i].Buttons.A == ButtonState.Pressed || xInputControllers[i].Triggers.Left > 0.01f)
                    {
                        return(GamePadIndexToPlayerPad((PlayerIndex)i));
                    }
                    if (keyboardController.IsKeyDown(keyConfig.UseLeftItem))
                    {
                        return(PlayerPad.Keyboard);
                    }
                    break;

                case PlayerButton.UseItem1:
                    if (xInputControllers[i].Buttons.B == ButtonState.Pressed || xInputControllers[i].Triggers.Right > 0.01f)
                    {
                        return(GamePadIndexToPlayerPad((PlayerIndex)i));
                    }
                    if (keyboardController.IsKeyDown(keyConfig.UseRightItem))
                    {
                        return(PlayerPad.Keyboard);
                    }
                    break;

                case PlayerButton.SwitchItem1:
                    if (xInputControllers[i].Buttons.X == ButtonState.Pressed || xInputControllers[i].Buttons.RightShoulder == ButtonState.Pressed)
                    {
                        return(GamePadIndexToPlayerPad((PlayerIndex)i));
                    }
                    if (keyboardController.IsKeyDown(keyConfig.SwitchItem1))
                    {
                        return(PlayerPad.Keyboard);
                    }
                    break;

                case PlayerButton.SwitchItem2:
                    if (xInputControllers[i].Buttons.Y == ButtonState.Pressed || xInputControllers[i].Buttons.LeftShoulder == ButtonState.Pressed)
                    {
                        return(GamePadIndexToPlayerPad((PlayerIndex)i));
                    }
                    if (keyboardController.IsKeyDown(keyConfig.SwitchItem2))
                    {
                        return(PlayerPad.Keyboard);
                    }
                    break;

                case PlayerButton.DownDirection:
                    if (xInputControllers[i].DPad.Down == ButtonState.Pressed || xInputControllers[i].ThumbSticks.Left.Y < 0)
                    {
                        return(GamePadIndexToPlayerPad((PlayerIndex)i));
                    }
                    if (keyboardController.IsKeyDown(keyConfig.DownDirection))
                    {
                        return(PlayerPad.Keyboard);
                    }
                    break;

                case PlayerButton.UpDirection:
                    if (xInputControllers[i].DPad.Up == ButtonState.Pressed || xInputControllers[i].ThumbSticks.Left.Y > 0)
                    {
                        return(GamePadIndexToPlayerPad((PlayerIndex)i));
                    }
                    if (keyboardController.IsKeyDown(keyConfig.UpDirection))
                    {
                        return(PlayerPad.Keyboard);
                    }
                    break;

                case PlayerButton.LeftDirection:
                    if (xInputControllers[i].DPad.Left == ButtonState.Pressed || xInputControllers[i].ThumbSticks.Left.X < 0)
                    {
                        return(GamePadIndexToPlayerPad((PlayerIndex)i));
                    }
                    if (keyboardController.IsKeyDown(keyConfig.LeftDirection))
                    {
                        return(PlayerPad.Keyboard);
                    }
                    break;

                case PlayerButton.RightDirection:
                    if (xInputControllers[i].DPad.Right == ButtonState.Pressed || xInputControllers[i].ThumbSticks.Left.X > 0)
                    {
                        return(GamePadIndexToPlayerPad((PlayerIndex)i));
                    }
                    if (keyboardController.IsKeyDown(keyConfig.RightDirection))
                    {
                        return(PlayerPad.Keyboard);
                    }
                    break;
                }
            }

            return(PlayerPad.NoPad);
        }
예제 #37
0
 public bool IsUp(PlayerButton button)
 {
     return(!IsDown(button));
 }
예제 #38
0
        public bool GetButton(PlayerButton button)
        {
            _state = GamePad.GetState(_index);

            if (_scheme.IsGamepad)
            {
                switch (button)
                {
                case PlayerButton.A:
                    if (_scheme.IsRightPlayer)
                    {
                        return(GamePad.GetButton(GamePad.Button.A, _index));
                    }
                    else
                    {
                        return(_state.Down);
                    }

                case PlayerButton.B:
                    if (_scheme.IsRightPlayer)
                    {
                        return(GamePad.GetButton(GamePad.Button.B, _index));
                    }
                    else
                    {
                        return(_state.Right);
                    }

                case PlayerButton.X:
                    if (_scheme.IsRightPlayer)
                    {
                        return(GamePad.GetButton(GamePad.Button.X, _index));
                    }
                    else
                    {
                        return(_state.Left);
                    }

                case PlayerButton.Y:
                    if (_scheme.IsRightPlayer)
                    {
                        return(GamePad.GetButton(GamePad.Button.Y, _index));
                    }
                    else
                    {
                        return(_state.Up);
                    }

                default:
                    throw new ArgumentOutOfRangeException("button", button, null);
                }
            }
            else
            {
                switch (button)
                {
                case PlayerButton.A:
                    return(Input.GetKey(_scheme.ButtonA));

                case PlayerButton.B:
                    return(Input.GetKey(_scheme.ButtonB));

                case PlayerButton.X:
                    return(Input.GetKey(_scheme.ButtonX));

                case PlayerButton.Y:
                    return(Input.GetKey(_scheme.ButtonY));

                default:
                    throw new ArgumentOutOfRangeException("button", button, null);
                }
            }
        }
예제 #39
0
		public override void RecieveInput(PlayerButton button, Boolean pressed)
		{
			if (Data.KeyControl == true)
			{
				base.RecieveInput(button, pressed);
			}
		}
예제 #40
0
        public static bool isButtonDown(PlayerButton button)
        {
            for (int i = 0; i < padStates.Length; i++)
            {
                if (lockMostRecentPad && i != mostRecentPad)
                {
                    continue;
                }

                switch (button)
                {
                    case PlayerButton.UpDirection:
                        if (padStates[i].DPad.Up == ButtonState.Pressed || padStates[i].ThumbSticks.Left.Y > 0.01 || kbdState.IsKeyDown(Keys.Up))
                        {
                            return true;
                        }
                        break;
                    case PlayerButton.DownDirection:
                        if (padStates[i].DPad.Down == ButtonState.Pressed || padStates[i].ThumbSticks.Left.Y < -0.01 || kbdState.IsKeyDown(Keys.Down))
                        {
                            return true;
                        }
                        break;
                    case PlayerButton.LeftDirection:
                        if (padStates[i].DPad.Left == ButtonState.Pressed || padStates[i].ThumbSticks.Left.X < -0.01 || kbdState.IsKeyDown(Keys.Left))
                        {
                            return true;
                        }
                        break;
                    case PlayerButton.RightDirection:
                        if (padStates[i].DPad.Right == ButtonState.Pressed || padStates[i].ThumbSticks.Left.X > 0.01 || kbdState.IsKeyDown(Keys.Right))
                        {
                            return true;
                        }
                        break;
                    case PlayerButton.Push:
                        if (padStates[i].ThumbSticks.Right.Length() > 0.01f)
                        {
                            return true;
                        }
                        break;
                    case PlayerButton.Jump:
                        if (padStates[i].Buttons.RightShoulder == ButtonState.Pressed)
                        {
                            return true;
                        }
                        break;
                    case PlayerButton.Confirm:
                        if (padStates[i].Buttons.A == ButtonState.Pressed || kbdState.IsKeyDown(Keys.Enter))
                        {
                            return true;
                        }
                        break;
                    case PlayerButton.Cancel:
                        if (padStates[i].Buttons.B == ButtonState.Pressed || kbdState.IsKeyDown(Keys.Back))
                        {
                            return true;
                        }
                        break;
                    case PlayerButton.StartButton:
                        if (padStates[i].Buttons.Start == ButtonState.Pressed || kbdState.IsKeyDown(Keys.Escape))
                        {
                            return true;
                        }
                        break;
                    case PlayerButton.XButton:
                        if (padStates[i].Buttons.X == ButtonState.Pressed)
                        {
                            return true;
                        }
                        break;
                    case PlayerButton.YButton:
                        if (padStates[i].Buttons.Y == ButtonState.Pressed)
                        {
                            return true;
                        }
                        break;
                    case PlayerButton.LBumper:
                        if (padStates[i].Buttons.LeftShoulder == ButtonState.Pressed)
                        {
                            return true;
                        }
                        break;
                    case PlayerButton.RBumper:
                        if (padStates[i].Buttons.RightShoulder == ButtonState.Pressed)
                        {
                            return true;
                        }
                        break;
                    case PlayerButton.AnyButton:
                        if (padStates[i].Buttons.A == ButtonState.Pressed || padStates[i].Buttons.B == ButtonState.Pressed || padStates[i].Buttons.X == ButtonState.Pressed || padStates[i].Buttons.Y == ButtonState.Pressed || padStates[i].Buttons.Back == ButtonState.Pressed || padStates[i].Buttons.Start == ButtonState.Pressed || padStates[i].Buttons.RightShoulder == ButtonState.Pressed || padStates[i].Buttons.LeftShoulder == ButtonState.Pressed || padStates[i].Buttons.RightStick == ButtonState.Pressed || padStates[i].Buttons.LeftStick == ButtonState.Pressed)
                        {
                            return true;
                        }
                        break;
                    default:
                        return false;
                }
            }

            return false;
        }
예제 #41
0
 private bool GetButtonState(PlayerButton inputelement, CommandElement commandelement)
 {
     return((inputelement & commandelement.MatchHash1) == commandelement.MatchHash1 && (inputelement & commandelement.MatchHash2) == 0);
 }
예제 #42
0
        /// <summary>
        /// Add a new input callback for a PlayerButton.
        /// </summary>
        /// <param name="button">The button associated with the callback.</param>
        /// <param name="callback">The callback to be fired.</param>
        public void Add(PlayerButton button, Action<Boolean> callback)
        {
            if (callback == null) throw new ArgumentNullException("callback");

            Add((Int32)button, callback);
        }