/// <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(); }
/// <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(); }
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); }
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); }
/// <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); }
/// <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; } } } }
public XInputHandler(IGamePad gamepad) { _gamepad = gamepad; _win32Sender = new SendInput(); _translator = new Task(() => { Process(); }); _translator.Start(); }
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; }
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); } }
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); }
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); }
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); }
/// <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; } } } }
/// <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); }
/// <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); }
public CharacterDashMoveState(Character parent, IGamePad pad) : base(parent, pad) { }
/// <summary> /// Initialize a new <see cref="BasicGamePadTracker"/> class. /// </summary> /// <param name="keyboard"></param> public BasicGamePadTracker(IGamePad gamePad) : base(gamePad) { }
public GamePadInputMap(IGamePad gamePad) => this.gamePad = gamePad;
public void SetGamePadTool(IGamePad gamePad) { this._gamePad = gamePad; }
public CharacterStayState(Character parent, IGamePad pad) : base(parent) { gamepad = pad; }
public GamePadControl(IGamePad gamepad) { this.GamePad = gamepad; }
/// <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)); }
/// <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)); }