Exemple #1
0
 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);
     }
 }
Exemple #2
0
 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;
 }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
 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)
Exemple #6
0
 public MazeFactory(IFileReader fileReader, ITileTypeFactory tileTypeFactory)
 {
     _fileReader      = fileReader;
     _tileTypeFactory = tileTypeFactory;
 }
Exemple #7
0
 public Maze(IReadOnlyList <string> mazeData, ITileTypeFactory tileTypeFactory)
 {
     CreateMaze(mazeData, tileTypeFactory.Pellet);
     _tileFactory = tileTypeFactory;
 }