public void move(int x, int y) {
   boolean fail = false;
   player.map.grid[posY][posX].contents.remove(player);
   player.posX += x;
   player.posY += y;
   if (posX < 0 || posX >= map.gridWidth || posY < 0 || posY >= map.gridHeight) {
     fail = true;
   }
   if (fail) {
     player.posX -= x;
     player.posY -= y;
   }
   player.map.grid[posY][posX].contents.add(player);
   player.map.parentFrame.repaint();
   if (checkDead()) {
     map.gameOver();
   }
 }
Exemple #2
0
 /**
  * Метод продолжения уровня после столкновения Пакмана с привидением.
  *
  * <p>Герои устанавливаются в свои исходные координаты.
  *
  * <p>Если количество жизней Пакмана равно 0, то вызывается вывод окна о проигрыше.
  */
 public void continueLevel() {
   if (pacman.lives == 0) {
     if (replay) {
       score += 1;
     }
     repaint();
     finish = true;
     gameOver(); // окно "Конец игры"
   }
   // восстанавливаем начальное положение
   pacman.x = 25; // пакмана и привидений
   pacman.y = 25;
   pacman.dx = 0;
   pacman.dy = 0;
   for (int i = 0; i < ghostNum; i++) {
     ghost[i].x = 325;
     ghost[i].y = 350;
     ghost[i].dx = 0;
     ghost[i].dy = 0;
   }
 }