Пример #1
0
        public static AndroidGamepad GetPad(GamepadId pad)
        {
            switch (pad)
            {
            case GamepadId.Pad1:
                return(Pad1);

            case GamepadId.Pad2:
                return(Pad2);

            case GamepadId.Pad3:
                return(Pad3);

            case GamepadId.Pad4:
                return(Pad4);
            }
            throw new NotSupportedException($"Cannot find gamepad {pad}");
        }
Пример #2
0
        public Gamepad getGamepad(GamepadId padId)
        {
            switch (padId)
            {
            case GamepadId.Pad1:
                return(EventManager.Pad1);

            case GamepadId.Pad2:
                return(EventManager.Pad2);

            case GamepadId.Pad3:
                return(EventManager.Pad3);

            case GamepadId.Pad4:
                return(EventManager.Pad4);

            default:
                throw new NotSupportedException($"Cannot get gamepad with id {padId}");
            }
        }
Пример #3
0
        private static void RegisterGamepadPlayer(IServiceCollection services, PlayerId playerId, GamepadId padId)
        {
            //var playerType = PlayerType.GetPlayerType(playerId);
            //Type[] typeArgs = { playerType };

            //var playerControlsType = typeof(PlayerControls<>);
            //var perPlayerPlayerControls = playerControlsType.MakeGenericType(typeArgs);

            var perPlayerPlayerControls = playerId.GetPlayerKeyedType(typeof(PlayerControls <>));

            //var playerType = playerId.GetPlayerType();

            services.AddSingleton(perPlayerPlayerControls, s =>
            {
                var i = Activator.CreateInstance(perPlayerPlayerControls, s.GetRequiredService(typeof(IEventLayerKeyInjector <PlayerControls>))) as PlayerControls;
                //i.MoveRightEvent.addButton(KeyboardButtonCode.KC_D);
                //i.MoveLeftEvent.addButton(KeyboardButtonCode.KC_A);
                //i.MoveUpEvent.addButton(KeyboardButtonCode.KC_W);
                //i.MoveDownEvent.addButton(KeyboardButtonCode.KC_S);
                //i.JumpEvent.addButton(KeyboardButtonCode.KC_SPACE);

                //i.MoveRightEvent.addButton(KeyboardButtonCode.KC_RIGHT);
                //i.MoveLeftEvent.addButton(KeyboardButtonCode.KC_LEFT);
                //i.MoveUpEvent.addButton(KeyboardButtonCode.KC_UP);
                //i.MoveDownEvent.addButton(KeyboardButtonCode.KC_DOWN);
                //i.JumpEvent.addButton(KeyboardButtonCode.KC_NUMPAD0);

                i.MoveRightEvent.addButton(GamepadButtonCode.XInput_DPadRight, padId);
                i.MoveLeftEvent.addButton(GamepadButtonCode.XInput_DPadLeft, padId);
                i.MoveUpEvent.addButton(GamepadButtonCode.XInput_DPadUp, padId);
                i.MoveDownEvent.addButton(GamepadButtonCode.XInput_DPadDown, padId);
                i.JumpEvent.addButton(GamepadButtonCode.XInput_RightShoulder, padId);

                i.Build(s.GetRequiredService <EventManager>());

                return(i);
            });

            var perPlayerFireControls = playerId.GetPlayerKeyedType(typeof(FireControls <>));

            services.AddSingleton(perPlayerFireControls, s =>
            {
                var i = Activator.CreateInstance(perPlayerFireControls, s.GetRequiredService(typeof(IEventLayerKeyInjector <FireControls>))) as FireControls;

                //i.Fire.addButton(MouseButtonCode.MB_BUTTON0);

                //i.Fire.addButton(KeyboardButtonCode.KC_NUMPAD1);

                i.Fire.addButton(GamepadButtonCode.XInput_RTrigger, padId);

                i.Build(s.GetRequiredService <EventManager>());

                return(i);
            });
        }
Пример #4
0
 public Gamepad(EventManager eventManager, GamepadId padId)
 {
     this.eventManager = eventManager;
     this.Id           = padId;
 }
Пример #5
0
 /// <summary>
 /// Add a gamepad button binding to the event. Also include the gamepad id for convience, will set Pad to the passed value.
 /// </summary>
 /// <param name="button">The button to add.</param>
 /// <param name="pad">The pad id will be set to Pad</param>
 public void addButton(GamepadButtonCode button, GamepadId pad)
 {
     gamepadButtons.Add(button);
     this.Pad = pad;
 }