void HandleInput() { Command command = null; if (Input.GetKeyDown(KeyCode.W)) { command = new MoveForwardCommand(); } else if (Input.GetKeyDown(KeyCode.S)) { command = new MoveBackwardCommand(); } else if (Input.GetKeyDown(KeyCode.A)) { command = new MoveLeftCommand(); } else if (Input.GetKeyDown(KeyCode.D)) { command = new MoveRightCommand(); } else if (Input.GetKeyDown(KeyCode.Z)) { Undo(); } else if (Input.GetKeyDown(KeyCode.R)) { Redo(); } if (command != null) { undoCommands.Push(command); command.Execute(Box); } }
// Start is called before the first frame update void Start() { commandSpace = new JumpCommand(); commandA = new MoveLeftCommand(); commandS = new MoveBackwardCommand(); commandD = new MoveRightCommand(); commandW = new MoveForwardCommand(); }
public void HoverCommand_ShouldExecuteClientMoveBackward() { // arrange moveBackwardCommand = new MoveBackwardCommand(DroneClientMock.Object); // act moveBackwardCommand.Execute(); // assert DroneClientMock.Verify(x => x.MoveBackward(), Times.Once); }
public Command CreateCommand(CommandType commandType) { Command command = null; switch (commandType) { case CommandType.Start: command = new StartCommand(drone); break; case CommandType.Stop: command = new StopCommand(drone); break; case CommandType.Configure: command = new ConfigureCommand(drone); break; case CommandType.MoveBackward: command = new MoveBackwardCommand(drone); break; case CommandType.MoveDown: command = new MoveDownCommand(drone); break; case CommandType.MoveForward: command = new MoveForwardCommand(drone); break; case CommandType.MoveLeft: command = new MoveLeftCommand(drone); break; case CommandType.MoveRight: command = new MoveRightCommand(drone); break; case CommandType.MoveUp: command = new MoveUpCommand(drone); break; case CommandType.Hover: command = new HoverCommand(drone); break; default: throw new ArgumentException("Invalid command type"); } return(command); }