public InputController(Game game) { input = (InputHandler)game.Services.GetService<IInputHandler>(); if (input == null) { throw new Exception("Controller has no input. Add Input Handler as a service first"); } }
public Game1() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; graphics.PreferredBackBufferWidth = 1200; graphics.PreferredBackBufferHeight = 700; input = new InputHandler(this); this.Components.Add(input); agentManager = new AgentManager(this); this.Components.Add(agentManager); }
public bool WasButtonPressed(int playerIndex, InputHandler.ButtonType button) { int pi = playerIndex; switch (button) { case InputHandler.ButtonType.A: { return (gamePadsState[pi].Buttons.A == ButtonState.Pressed && prevGamePadsState[pi].Buttons.A == ButtonState.Released); } case InputHandler.ButtonType.B: { return (gamePadsState[pi].Buttons.B == ButtonState.Pressed && prevGamePadsState[pi].Buttons.B == ButtonState.Released); } case InputHandler.ButtonType.Back: { return (gamePadsState[pi].Buttons.Back == ButtonState.Pressed && prevGamePadsState[pi].Buttons.Back == ButtonState.Released); } case InputHandler.ButtonType.LeftShoulder: { return (gamePadsState[pi].Buttons.LeftShoulder == ButtonState.Pressed && prevGamePadsState[pi].Buttons.LeftShoulder == ButtonState.Released); } case InputHandler.ButtonType.LeftStick: { return (gamePadsState[pi].Buttons.LeftStick == ButtonState.Pressed && prevGamePadsState[pi].Buttons.LeftStick == ButtonState.Released); } case InputHandler.ButtonType.RightShoulder: { return (gamePadsState[pi].Buttons.RightShoulder == ButtonState.Pressed && prevGamePadsState[pi].Buttons.RightShoulder == ButtonState.Released); } case InputHandler.ButtonType.RightStick: { return (gamePadsState[pi].Buttons.RightStick == ButtonState.Pressed && prevGamePadsState[pi].Buttons.RightStick == ButtonState.Released); } case InputHandler.ButtonType.Start: { return (gamePadsState[pi].Buttons.Start == ButtonState.Pressed && prevGamePadsState[pi].Buttons.Start == ButtonState.Released); } case InputHandler.ButtonType.X: { return (gamePadsState[pi].Buttons.X == ButtonState.Pressed && prevGamePadsState[pi].Buttons.X == ButtonState.Released); } case InputHandler.ButtonType.Y: { return (gamePadsState[pi].Buttons.Y == ButtonState.Pressed && prevGamePadsState[pi].Buttons.Y == ButtonState.Released); } default: throw (new ArgumentException()); } }