public void Initialize() { gameOverPosition.X = 320; gameOverPosition.Y = 130; device = graphics.GraphicsDevice; gameState = new GameState(); gameStart = new GameStart(device.PresentationParameters.BackBufferWidth, device.PresentationParameters.BackBufferHeight); gameState.setState(GameState.state.Level); board = new GameBoard(new Vector2(33, 25), new Vector2(device.PresentationParameters.BackBufferWidth, device.PresentationParameters.BackBufferHeight)); darwin = new Darwin(board); String zombieString = "This a zombie,\n don't near him \nas a human!!"; zombieMessage = new MessageBox(board.getPosition(12, 8).X, board.getPosition(10, 10).Y, zombieString); String darwinString = "This is darwin,\n move with arrows, \n z to transform, \n a for actions"; darwinMessage = new MessageBox(board.getPosition(12, 8).X, board.getPosition(10, 10).Y, darwinString); stairs = new Stairs(board); if (board.isGridPositionOpen(5, 18)) { stairs.setGridPosition(5, 18); } // Initial starting position darwin.setGridPosition(6, 18); if (board.isGridPositionOpen(darwin)) { board.setGridPositionOccupied(darwin.X, darwin.Y); darwin.setPosition(board.getPosition(darwin).X, board.getPosition(darwin).Y); } // Darwin's lag movement counterReady = counter = 5; zTime = new ZombieTime(board); zTimeReset = new ZombieTime(board); setPotionPosition(27, 5); setBoxes(); setBoxPattern(); pattern = new BoxPattern(board, spotsForPattern); setVortexes(); setWalls(); snake = new Snake(10, 9, 27, 5, 18, 5, board); snake2 = new Snake(8, 15, 27, 5, 18, 5, board); snake3 = new Snake(21, 9, 27, 5, 18, 5, board); snake4 = new Snake(21, 15, 27, 5, 18, 5, board); northZombie = new PyroZombie(15, 3, 25, 4, 3, 3, board); northZombie.setGridPosition(15, 3); northZombie.setCurrentPatrolPoint(new Vector2(27, 3)); northZombie.setNextPatrolPoint(new Vector2(5, 3)); southZombie = new PyroZombie(15, 20, 25, 4, 20, 20, board); southZombie.setGridPosition(15, 20); southZombie.setCurrentPatrolPoint(new Vector2(5, 20)); southZombie.setNextPatrolPoint(new Vector2(27, 20)); eastZombie = new PyroZombie(29, 11, 29, 29, 19, 4, board); eastZombie.setGridPosition(29, 11); eastZombie.setCurrentPatrolPoint(new Vector2(29, 17)); eastZombie.setNextPatrolPoint(new Vector2(29, 6)); westZombie = new PyroZombie(3, 11, 3, 3, 19, 4, board); westZombie.setGridPosition(3, 11); westZombie.setCurrentPatrolPoint(new Vector2(3, 5)); westZombie.setNextPatrolPoint(new Vector2(3, 18)); flames = new LinkedList<Flame>(); }
private void checkForDarwinBelowSnake(Snake snake, Darwin darwin) { if (snake.isDarwinDirectlyBelowSnake(darwin) && board.isGridPositionOpen(darwin.X, darwin.Y + 1)) { snake.pushDarwinDown(darwin); } else if (snake.isDarwinDirectlyBelowSnake(darwin) && !board.isGridPositionOpen(darwin.X, darwin.Y + 1)) { snake.backOffUp(); } else { if (board.isGridPositionOpen(snake.X, snake.Y + 1)) { snake.MoveDown(); } else { snake.backOffUp(); } } }
private void checkForDarwinLeftOfSnake(Snake snake, Darwin darwin) { if (snake.isDarwinDirectlyLeftOfSnake(darwin) && board.isGridPositionOpen(darwin.X - 1, darwin.Y)) { snake.pushDarwinLeft(darwin); } else if(snake.isDarwinDirectlyLeftOfSnake(darwin) && !board.isGridPositionOpen(darwin.X - 1, darwin.Y)) { snake.backOffRight(); } else { if (board.isGridPositionOpen(snake.X - 1, snake.Y)) { snake.MoveLeft(); } else { snake.backOffRight(); } } }
private void updateSnakeCollision(Snake snake, Darwin darwin, GameTime gameTime) { if (!snake.isSnakeInPit()) { snake.setZombieAlive(false); } else { snake.Update(gameTime, darwin, flames); if (snake.lineOfSight & snake.allowedToWalk) { if (snake.lineOfSightDirection.Equals(LegendOfDarwin.GameObject.Snake.Direction.Up)) { checkForDarwinAboveSnake(snake, darwin); } if (snake.lineOfSightDirection.Equals(LegendOfDarwin.GameObject.Snake.Direction.Down)) { checkForDarwinBelowSnake(snake, darwin); } if (snake.lineOfSightDirection.Equals(LegendOfDarwin.GameObject.Snake.Direction.Right)) { checkForDarwinRightOfSnake(snake, darwin); } if (snake.lineOfSightDirection.Equals(LegendOfDarwin.GameObject.Snake.Direction.Left)) { checkForDarwinLeftOfSnake(snake, darwin); } } } }