64 lines
1.5 KiB
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();
|
|
}
|
|
}
|