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(); } }