public void UpdateSpritePosition(ITileTypeFactory tileTypeFactory, ISprite sprite, IMaze gameMaze) { var(x, y) = GetNewPosition(sprite, gameMaze); if (!_gameLogicValidator.HasCollidedWithWall(tileTypeFactory, (x, y), gameMaze)) { sprite.SetNewPosition(x, y); } }
public LevelFactory(ITileTypeFactory tileTypeFactory, IDisplay display, ISpriteFactory spriteFactory, IGameLogicValidator gameLogicValidator, IGameEngine gameEngine, IPlayerInput playerInput, ISpriteBehaviour pacmanBehaviour, ISpriteBehaviour ghostBehaviour) { _tileTypeFactory = tileTypeFactory; _display = display; _spriteFactory = spriteFactory; _gameLogicValidator = gameLogicValidator; _gameEngine = gameEngine; _playerInput = playerInput; _pacmanBehaviour = pacmanBehaviour; _ghostBehaviour = ghostBehaviour; }
public void UpdateMazeTileDisplays(ITileTypeFactory tileTypeFactory, IMaze gameMaze, ISprite pacman, IEnumerable <ISprite> ghosts) { pacman.UpdateDisplay(); gameMaze.UpdateMazeArray(pacman.X, pacman.Y, pacman.SpriteDisplay, tileTypeFactory.Empty); gameMaze.UpdateMazeArray(pacman.PrevX, pacman.PrevY, tileTypeFactory.Empty, tileTypeFactory.Empty); foreach (var ghostSprite in ghosts) { var prevTileType = gameMaze.MazeArray[ghostSprite.PrevX, ghostSprite.PrevY].HasBeenEaten ? tileTypeFactory.Empty : tileTypeFactory.Pellet; gameMaze.UpdateMazeArray(ghostSprite.PrevX, ghostSprite.PrevY, prevTileType, tileTypeFactory.Empty); gameMaze.UpdateMazeArray(ghostSprite.X, ghostSprite.Y, ghostSprite.SpriteDisplay, tileTypeFactory.Empty); } }
public Level(ITileTypeFactory tileTypeFactory, IMaze maze, IDisplay display, ISpriteFactory spriteFactory, IGameLogicValidator gameLogicValidator, IGameEngine gameEngine, IPlayerInput playerInput, ISpriteBehaviour pacmanBehaviour, ISpriteBehaviour ghostBehaviour) { GameLogicValidator = gameLogicValidator; GameEngine = gameEngine; _tileTypeFactory = tileTypeFactory; _gameMaze = maze; _display = display; _playerInput = playerInput; Pacman = spriteFactory.CreateSprite(1, 1, pacmanBehaviour); Ghosts.Add(spriteFactory.CreateSprite(9, 9, ghostBehaviour)); Ghosts.Add(spriteFactory.CreateSprite(9, 10, ghostBehaviour)); _allSprites.Add(Pacman); _allSprites.AddRange(Ghosts); HasWon = false; LivesLeft = 3; }
public bool HasCollidedWithWall(ITileTypeFactory tileTypeFactory, (int x, int y) newPosition, IMaze gameMaze)
public MazeFactory(IFileReader fileReader, ITileTypeFactory tileTypeFactory) { _fileReader = fileReader; _tileTypeFactory = tileTypeFactory; }
public Maze(IReadOnlyList <string> mazeData, ITileTypeFactory tileTypeFactory) { CreateMaze(mazeData, tileTypeFactory.Pellet); _tileFactory = tileTypeFactory; }