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(); } }
/** * Метод продолжения уровня после столкновения Пакмана с привидением. * * <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; } }