示例#1
0
 /// <summary>Initializes a new XNA-based keyboard device</summary>
 /// <param name="playerIndex">Index of the player whose chat pad will be queried</param>
 /// <param name="gamePad">Game pad the chat pad is attached to</param>
 public XnaKeyboard(PlayerIndex playerIndex, IGamePad gamePad)
 {
     this.playerIndex = playerIndex;
       this.gamePad = gamePad;
       this.states = new Queue<KeyboardState>();
       this.current = new KeyboardState();
 }
示例#2
0
 /// <summary>Initializes a new XNA-based keyboard device</summary>
 /// <param name="playerIndex">Index of the player whose chat pad will be queried</param>
 /// <param name="gamePad">Game pad the chat pad is attached to</param>
 public XnaKeyboard(PlayerIndex playerIndex, IGamePad gamePad)
 {
     this.playerIndex = playerIndex;
     this.gamePad     = gamePad;
     this.states      = new Queue <KeyboardState>();
     this.current     = new KeyboardState();
 }
 public CharacterMoveState(Character parent, IGamePad pad)
     : base(parent)
 {
     gamepad = pad;
     animation = character.animation as CharacterAnimationController;
     Init();
 }
示例#4
0
 public CharacterMoveState(Character parent, IGamePad pad)
     : base(parent)
 {
     gamepad   = pad;
     animation = character.animation as CharacterAnimationController;
     Init();
 }
示例#5
0
 public CharacterChargeState(Character parent, IGamePad pad, string push)
     : base(parent, pad)
 {
     pushButton = push;
     charge     = push == Button.A ? parameter.attackCharge : parameter.skillCharge;
     //チャージゲージウィンドウを呼び出す
     character.parameterWindow.CreateChargeParameterWindow(charge);
 }
示例#6
0
 public MotionController(IDisplay display, IGamePad gamePad, IMap map, Bomber bomber, MapManager mapManager)
 {
     _display    = display;
     _gamePad    = gamePad;
     _map        = map;
     _bomber     = bomber;
     _mapManager = mapManager;
 }
 public CharacterChargeState(Character parent, IGamePad pad, string push)
     : base(parent, pad)
 {
     pushButton = push;
     charge = push == Button.A ? parameter.attackCharge : parameter.skillCharge;
     //�`���[�W�Q�[�W�E�B���h�E��Ăяo��
     character.parameterWindow.CreateChargeParameterWindow(charge);
 }
        public CharacterHitStopState(Character parent, IGamePad pad, Damage damages)
            : base(parent)
        {
            gamepad = pad;
            this.damage = damages;

            if (damage.damageParameter.damage >= 20F) SoundManager.Play(SoundManager.hitHeavy);
            else SoundManager.Play(SoundManager.hitLight);
        }
示例#9
0
        /// <summary>Actual evaluation of axes based on game settings.</summary>
        /// <param name="gamePad">The gamepad to read the state from.</param>
        /// <param name="command">The command / axis for which to get the value.</param>
        /// <returns>The value along that single axis.</returns>
        private static float ComputeAxis(IGamePad gamePad, GamePadCommand command)
        {
            var state = gamePad.GetExtendedState();
            var value = Settings.Instance.AxisBindings.Test(command, state.GetAxis);

            if (Math.Abs(value) < Settings.Instance.GamePadDetectionEpsilon)
            {
                value = 0;
            }
            return(value);
        }
示例#10
0
        /// <summary>Attach listeners to all known devices.</summary>
        private void AttachListeners()
        {
            // Detach first, to avoid multiple registrations.
            DetachListeners();

            var im = _game.InputManager;

            // Register for key presses and releases (movement).
            if (im.Keyboards != null)
            {
                foreach (var keyboard in im.Keyboards)
                {
                    if (keyboard.IsAttached)
                    {
                        keyboard.KeyPressed  += HandleKeyPressed;
                        keyboard.KeyReleased += HandleKeyReleased;
                    }
                }
            }

            // Register for mouse movement (orientation) and buttons (shooting).
            if (im.Mice != null)
            {
                foreach (var mouse in im.Mice)
                {
                    if (mouse.IsAttached)
                    {
                        mouse.MouseMoved          += HandleMouseMoved;
                        mouse.MouseButtonPressed  += HandleMousePressed;
                        mouse.MouseButtonReleased += HandleMouseReleased;
                        mouse.MouseWheelRotated   += HandleMouseWheelRotated;
                    }
                }
            }

            // Register for game pad buttons. Sticks are handled in update.
            _gamePad = null;
            if (Settings.Instance.EnableGamepad && im.GamePads != null)
            {
                foreach (var gamepad in im.GamePads)
                {
                    if (gamepad.IsAttached)
                    {
                        _gamePad = gamepad;
                        gamepad.ButtonPressed  += HandleGamePadPressed;
                        gamepad.ButtonReleased += HandleGamePadReleased;

                        // Only use the first gamepad.
                        break;
                    }
                }
            }
        }
示例#11
0
        public XInputHandler(IGamePad gamepad)
        {
            _gamepad = gamepad;

            _win32Sender = new SendInput();

            _translator = new Task(() =>
            {
                Process();
            });
            _translator.Start();
        }
示例#12
0
        public Ship(IGraphicsDevice graphics, IKeyboard keyboard, IGamePad gamePad)
            : base()
        {
            if (graphics == null)
                throw new ArgumentNullException("graphics");

            if (keyboard == null)
                throw new ArgumentNullException("keyboard");

            if (gamePad == null)
                throw new ArgumentNullException("gamePad");

            this.graphics = graphics;
            this.keyboard = keyboard;
            this.gamePad = gamePad;
        }
示例#13
0
        public CharacterHitStopState(Character parent, IGamePad pad, Damage damages)
            : base(parent)
        {
            gamepad     = pad;
            this.damage = damages;


            if (damage.damageParameter.damage >= 20F)
            {
                SoundManager.Play(SoundManager.hitHeavy);
            }
            else
            {
                SoundManager.Play(SoundManager.hitLight);
            }
        }
示例#14
0
        public GamePadInputMap(IGamePad gamePad)
        {
            this.gamePad = gamePad;

            Run      = new ButtonInput(() => gamePad.Buttons.Y);
            Jump     = new ButtonInput(() => gamePad.Buttons.A);
            Pulse    = new ButtonInput(() => gamePad.Buttons.X);
            Interact = new ButtonInput(() => gamePad.Buttons.B);
            Start    = new ButtonInput(() => gamePad.Buttons.Start);
            Pause    = new ButtonInput(() => gamePad.Buttons.Start);
            Back     = new ButtonInput(() => gamePad.Buttons.Back);

            Debug     = new ButtonInput(() => gamePad.Buttons.RightStick);
            Quicksave = new ButtonInput(() => gamePad.Buttons.LeftBumper);
            Quickload = new ButtonInput(() => gamePad.Buttons.RightBumper);
        }
示例#15
0
        public static IGamePad New(InputTypes inputType, IDisposableResource parent)
        {
            IGamePad api = null;

                        #if XNA
            if (inputType == InputTypes.XNA)
            {
                api = new XNA.GamePad(disposable);
            }
                        #endif

            if (api == null)
            {
                Debug.ThrowError("GamePadAPI", "Unsuported InputType: " + inputType);
            }
            return(api);
        }
示例#16
0
        public Controller()
        {
            _cfgManager = new ConfigManager();

            CheckAppInstance();

            _gamepad        = new XInputGamePad();
            _gamepadHandler = new XInputHandler(_gamepad);

            _mainWindow     = new MainWindow();
            _settingsWindow = new SettingsWindow();

            _baloonTooltip        = Factory.Items.GetBallonToolTip(Controller.GetLanguage()["BalloonText"]);
            _baloonTooltip.Click += new EventHandler((sender, args) =>
            {
                MouseEventArgs margs = args as MouseEventArgs;
                if (margs != null)
                {
                    if (margs.Button == MouseButtons.Left)
                    {
                        _mainWindow.SetHidden(false);
                        _mainWindow.Minimize();
                    }
                }
            });

            _showMenuItem        = Factory.Items.GetContextMenuItem(Controller.GetLanguage()["TrayShow"], 1);
            _showMenuItem.Click += new EventHandler((sender, args) =>
            {
                if (_mainWindow.IsMinimized())
                {
                    _mainWindow.Minimize();
                }
            });

            _exitMenuItem        = Factory.Items.GetContextMenuItem(Controller.GetLanguage()["TrayExit"], 2);
            _exitMenuItem.Click += new EventHandler((sender, args) =>
            {
                _mainWindow.EventClose?.Invoke();
            });

            _baloonTooltip.ContextMenu = Factory.Items.GetTrayContextMenu(_showMenuItem, _exitMenuItem);
        }
示例#17
0
        /// <summary>Remove listeners from all known devices.</summary>
        private void DetachListeners()
        {
            var im = _game.InputManager;

            if (im.Keyboards != null)
            {
                foreach (var keyboard in im.Keyboards)
                {
                    if (keyboard.IsAttached)
                    {
                        keyboard.KeyPressed  -= HandleKeyPressed;
                        keyboard.KeyReleased -= HandleKeyReleased;
                    }
                }
            }

            if (im.Mice != null)
            {
                foreach (var mouse in im.Mice)
                {
                    if (mouse.IsAttached)
                    {
                        mouse.MouseMoved          -= HandleMouseMoved;
                        mouse.MouseButtonPressed  -= HandleMousePressed;
                        mouse.MouseButtonReleased -= HandleMouseReleased;
                        mouse.MouseWheelRotated   -= HandleMouseWheelRotated;
                    }
                }
            }

            _gamePad = null;
            if (im.GamePads != null)
            {
                foreach (var gamepad in im.GamePads)
                {
                    if (gamepad.IsAttached)
                    {
                        gamepad.ButtonPressed  -= HandleGamePadPressed;
                        gamepad.ButtonReleased -= HandleGamePadReleased;
                    }
                }
            }
        }
示例#18
0
        /// <summary>Gets the current acceleration vector.</summary>
        /// <param name="gamePad">The gamepad to read the state from.</param>
        /// <returns>The current acceleration direction.</returns>
        public static Vector2 GetAcceleration(IGamePad gamePad)
        {
            Vector2 result;

            // Get X and Y acceleration.
            result.X = ComputeAxis(gamePad, GamePadCommand.AccelerateX);
            result.Y = ComputeAxis(gamePad, GamePadCommand.AccelerateY);

            // See if we want to invert any axis.
            if (Settings.Instance.InvertGamepadAccelerationAxisX)
            {
                result.X = -result.X;
            }
            if (Settings.Instance.InvertGamepadAccelerationAxisY)
            {
                result.Y = -result.Y;
            }

            return(result);
        }
示例#19
0
        /// <summary>Gets the current look vector.</summary>
        /// <param name="gamePad">The gamepad to read the state from.</param>
        /// <returns>The current look direction.</returns>
        public static Vector2 GetLook(IGamePad gamePad)
        {
            Vector2 result;

            // Get X and Y look direction.
            result.X = ComputeAxis(gamePad, GamePadCommand.LookX);
            result.Y = ComputeAxis(gamePad, GamePadCommand.LookY);

            // See if we want to invert any axis.
            if (Settings.Instance.InvertGamepadLookAxisX)
            {
                result.X = -result.X;
            }
            if (Settings.Instance.InvertGamepadLookAxisY)
            {
                result.Y = -result.Y;
            }

            return(result);
        }
示例#20
0
 public CharacterDashMoveState(Character parent, IGamePad pad)
     : base(parent, pad)
 {
 }
示例#21
0
 /// <summary>
 /// Initialize a new <see cref="BasicGamePadTracker"/> class.
 /// </summary>
 /// <param name="keyboard"></param>
 public BasicGamePadTracker(IGamePad gamePad)
     : base(gamePad)
 {
 }
示例#22
0
 public GamePadInputMap(IGamePad gamePad) => this.gamePad = gamePad;
示例#23
0
 public void SetGamePadTool(IGamePad gamePad)
 {
     this._gamePad = gamePad;
 }
 public CharacterStayState(Character parent, IGamePad pad)
     : base(parent)
 {
     gamepad = pad;
 }
 public CharacterDashMoveState(Character parent, IGamePad pad)
     : base(parent, pad)
 {
 }
示例#26
0
 public GamePadControl(IGamePad gamepad)
 {
     this.GamePad = gamepad;
 }
示例#27
0
 /// <summary>
 /// Creates a mapping to an axis of the right stick of the gamepad.
 /// </summary>
 /// <param name="gamePad"></param>
 /// <param name="axis"></param>
 /// <param name="value"></param>
 /// <returns></returns>
 public static KeyMapItem ToRightStick(IGamePad gamePad, Axis axis, double value)
 {
     return(ToRightStick(gamePad.PlayerIndex, axis, value));
 }
示例#28
0
 /// <summary>
 /// Creates a mapping to a button.
 /// </summary>
 /// <param name="gamePad"></param>
 /// <param name="button"></param>
 /// <returns></returns>
 public static KeyMapItem ToButton(IGamePad gamePad, Buttons button)
 {
     return(ToButton(gamePad.PlayerIndex, button));
 }
 public CharacterStayState(Character parent, IGamePad pad)
     : base(parent)
 {
     gamepad = pad;
 }