Give + render points for capturing ghost
Slow frightened ghosts down
This commit is contained in:
parent
d33435bf42
commit
ac347dc6d8
@ -44,9 +44,12 @@ public class PlayState extends LevelState {
|
|||||||
private float gameOverTimer;
|
private float gameOverTimer;
|
||||||
private float newGameTimer;
|
private float newGameTimer;
|
||||||
private float deathTimer;
|
private float deathTimer;
|
||||||
|
private float pointsTimer;
|
||||||
public float frightTimer;
|
public float frightTimer;
|
||||||
|
|
||||||
private boolean pacmanCaught;
|
private boolean pacmanCaught;
|
||||||
|
private int ghostsCaught;
|
||||||
|
private Ghost lastGhostCaptured;
|
||||||
|
|
||||||
public Pacman pacman;
|
public Pacman pacman;
|
||||||
public Ghost[] ghosts;
|
public Ghost[] ghosts;
|
||||||
@ -76,11 +79,15 @@ public class PlayState extends LevelState {
|
|||||||
game.batch.draw(lifeSprite, i * 16, 0);
|
game.batch.draw(lifeSprite, i * 16, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pointsTimer > 0) {
|
||||||
|
game.batch.draw(game.assets.points[0][ghostsCaught-1], (lastGhostCaptured.pos.x * 8) - 8, (lastGhostCaptured.pos.y * 8) + 8);
|
||||||
|
} else {
|
||||||
pacman.render(game.batch, 0, 16);
|
pacman.render(game.batch, 0, 16);
|
||||||
|
}
|
||||||
|
|
||||||
if (pacman.alive) {
|
if (pacman.alive) {
|
||||||
for (Ghost ghost : ghosts) {
|
for (Ghost ghost : ghosts) {
|
||||||
if (ghost == null) {
|
if (ghost == null || (pointsTimer > 0 && ghost == lastGhostCaptured)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
ghost.render(game.batch, 0, 16);
|
ghost.render(game.batch, 0, 16);
|
||||||
@ -114,6 +121,11 @@ public class PlayState extends LevelState {
|
|||||||
dt = 1/60f;
|
dt = 1/60f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pointsTimer -= dt;
|
||||||
|
if (pointsTimer > 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (gameOverTimer > 0) {
|
if (gameOverTimer > 0) {
|
||||||
gameOverTimer -= dt;
|
gameOverTimer -= dt;
|
||||||
if (gameOverTimer <= 0) {
|
if (gameOverTimer <= 0) {
|
||||||
@ -212,7 +224,7 @@ public class PlayState extends LevelState {
|
|||||||
|
|
||||||
pacman = new Pacman(this, false);
|
pacman = new Pacman(this, false);
|
||||||
if (newGameTimer <= 0) {
|
if (newGameTimer <= 0) {
|
||||||
placeGhosts();
|
spawnGhosts();
|
||||||
}
|
}
|
||||||
|
|
||||||
game.assets.siren.stop(sirenId);
|
game.assets.siren.stop(sirenId);
|
||||||
@ -238,10 +250,10 @@ public class PlayState extends LevelState {
|
|||||||
random = new Random(897198256012865L);
|
random = new Random(897198256012865L);
|
||||||
|
|
||||||
pacman = new Pacman(this, false);
|
pacman = new Pacman(this, false);
|
||||||
placeGhosts();
|
spawnGhosts();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void placeGhosts() {
|
public void spawnGhosts() {
|
||||||
ghosts[0] = new Ghost(this, 14, 19.5f, Direction.LEFT, 0, new BlinkyChaseBehaviour(this), new StaticTargetBehaviour(this, BLINKY_SCATTER_TARGET));
|
ghosts[0] = new Ghost(this, 14, 19.5f, Direction.LEFT, 0, new BlinkyChaseBehaviour(this), new StaticTargetBehaviour(this, BLINKY_SCATTER_TARGET));
|
||||||
ghosts[1] = new Ghost(this, 14f, 16.5f, Direction.DOWN, 1, new PinkyChaseBehaviour(this), new StaticTargetBehaviour(this, PINKY_SCATTER_TARGET));
|
ghosts[1] = new Ghost(this, 14f, 16.5f, Direction.DOWN, 1, new PinkyChaseBehaviour(this), new StaticTargetBehaviour(this, PINKY_SCATTER_TARGET));
|
||||||
ghosts[2] = new Ghost(this, 12f, 16.5f, Direction.UP, 2, new InkyChaseBehaviour(this), new StaticTargetBehaviour(this, INKY_SCATTER_TARGET));
|
ghosts[2] = new Ghost(this, 12f, 16.5f, Direction.UP, 2, new InkyChaseBehaviour(this), new StaticTargetBehaviour(this, INKY_SCATTER_TARGET));
|
||||||
@ -284,8 +296,10 @@ public class PlayState extends LevelState {
|
|||||||
ghost.caught = false;
|
ghost.caught = false;
|
||||||
ghost.currentBehaviour = ghost.frightBehaviour;
|
ghost.currentBehaviour = ghost.frightBehaviour;
|
||||||
ghost.currDirection = ghost.currDirection.getOpposite();
|
ghost.currDirection = ghost.currDirection.getOpposite();
|
||||||
|
ghost.speed = Ghost.GHOST_TUNNEL_SPEED;
|
||||||
}
|
}
|
||||||
frightTimer = 6f;
|
frightTimer = 6f;
|
||||||
|
ghostsCaught = 0;
|
||||||
score += 50;
|
score += 50;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -300,6 +314,11 @@ public class PlayState extends LevelState {
|
|||||||
ghost.caught = true;
|
ghost.caught = true;
|
||||||
ghost.currentBehaviour = new ReturnToBase(this);
|
ghost.currentBehaviour = new ReturnToBase(this);
|
||||||
ghost.speed = Ghost.EYES_SPEED;
|
ghost.speed = Ghost.EYES_SPEED;
|
||||||
|
|
||||||
|
lastGhostCaptured = ghost;
|
||||||
|
ghostsCaught++;
|
||||||
|
score += ghostsCaught * 200;
|
||||||
|
pointsTimer = 1f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user