cicaprojekt/cicaprojekt/FlowOfTime.java

64 lines
1.5 KiB
Java

package cicaprojekt;
import java.util.Timer;
import java.util.TimerTask;
/**
* A játékidőt reprezentáló osztály.
*/
public class FlowOfTime extends Timer {
/**
* A játék végét reprezentáló osztály, amely megállítja a játékmenetet,
* ha letelik az idő.
*/
private class GameOver extends TimerTask {
/**
* Leállítja a játékmenetet.
*
* @see Game#stopGame(GameoverCause)
*/
@Override
public void run() {
Game.instance.stopGame(GameoverCause.TIMEOUT);
}
}
/**
* A Replikátor elindításáért felelős osztály.
*/
private class ReplicatorAI extends TimerTask {
/**
* Elindítja a Replikátort egy véletlenszerű irányba, majd
* frssíti a megjelenítést.
*
* @see Game#moveReplicator(Direction)
* @see Game#updateDisplay()
*/
@Override
public void run()
{
Game.instance.moveReplicator(Direction.getRandom());
Game.instance.updateDisplay();
}
}
/**
* A játékidő adott késleltetéssel való elindítása.
*
* @param delay késleltets
*/
public void start(long delay) {
schedule(new GameOver(), delay);
scheduleAtFixedRate(new ReplicatorAI(), 2000, 2000);
}
/**
* A játékidő megállítása.
*/
public void stopTime() {
cancel();
purge();
}
}