public InputHandler(SFML.Graphics.RenderWindow window) { //Defining the Commands here _go = new GoCommand(); _jump = new JumpCommand(); turnCommand = new TurnCommand(); attack = new AttackCommand(); //Building the Commandlist commandList = new List <Command>(); GameCommandList = new List <GameCommand>(); restartCommand = new restartCommand(); //Setup the Joysticksettings joystickNr = 0; setupJoystick(joystickNr); //Setup the Keys of the Keyboard setupKeyboard(); caX = new CommandAttributes(1); caY = new CommandAttributes(0, 1); caXN = new CommandAttributes(-1); caYN = new CommandAttributes(0, -1); timed = new CommandAttributes(Time.FromSeconds(.5f)); mousePosition = Mouse.GetPosition(); this.window = window; }
private void AddCommandToList(Command item, CommandAttributes ca) { if (!commandList.Contains(item)) { item.Ca = ca; commandList.Add(item); } else { Output.Instance.print("Command was not added, because it already exists."); } }
private void HandleKeyboardInput() { CommandAttributes _temp = new CommandAttributes(0, 0); if (KeyDown(leftKey)) { _temp.Add(new Vector2f(-1, 0)); } if (KeyDown(rightKey)) { _temp.Add(new Vector2f(1, 0)); } if (KeyDown(jumpKey)) { AddCommandToList(_jump, caX); } if (KeyDown(upKey)) { _temp.Add(new Vector2f(0, -1)); } if (KeyDown(downKey)) { _temp.Add(new Vector2f(0, 1)); } if (_temp.IsValid()) { _temp.Normalize(); AddCommandToList(_go, _temp); } if (MousePositionChanged()) { Vector2f worldPos = window.MapPixelToCoords(new Vector2i(mousePosition.X, mousePosition.Y)); CommandAttributes _ca = new CommandAttributes(worldPos.X, worldPos.Y); AddCommandToList(turnCommand, _ca); } if (mouseButtonDown(leftClick)) { AddCommandToList(attack, timed); } if (KeyDown(escKey)) { System.Environment.Exit(0); } if (KeyDown(rKey)) { AddCommandToGameCommandList(restartCommand); } }
private void HandleJoystickInput() { if (joystickConnected) { //Always update the Joystick (otherwise it doesn't work.) Joystick.Update(); //Check for the Buttons to be pressed if (Joystick.IsButtonPressed(joystickNr, jumpJoy)) { AddCommandToList(_jump, caX); } if (Joystick.IsButtonPressed(joystickNr, attackJoy)) { AddCommandToList(attack, timed); } if (Joystick.IsButtonPressed(joystickNr, altAttackJoy)) { //CommandAttributes _t = new CommandAttributes(1, false); //AddCommandToList(attack, _t); } float _axisDirection = axisDirection(runAxis); float _axisDirectionY = axisDirection(upAxis); if (Math.Abs(_axisDirection) > threshold || Math.Abs(_axisDirectionY) > threshold) { CommandAttributes _ca = new CommandAttributes(_axisDirection / 100, _axisDirectionY / 100); AddCommandToList(_go, _ca); } float _axisRightL = axisDirection(rightAxisL); float _axisRightU = axisDirection(rightAxisU); if (Math.Abs(_axisRightU) > 50 || Math.Abs(_axisRightL) > 50) { Vector2f worldPos = window.MapPixelToCoords(new Vector2i((int)(_axisRightL + window.DefaultView.Size.X / 2), (int)(_axisRightU + window.DefaultView.Size.Y / 2))); CommandAttributes _ca = new CommandAttributes(worldPos.X, worldPos.Y); AddCommandToList(turnCommand, _ca); } if (Joystick.IsButtonPressed(0, 14)) { AddCommandToGameCommandList(restartCommand); } JoystickDebug(); } }