Witam, potrzebuję wykonać i zaimplementować do gry licznik czasu, aby zliczał mi od 60s do 0 (wyświetlał na bieżąco na ekranie) i po osiągnięcia 0s przerywał grę.
Ściągnąłem jakąś funkcję z Internetu i przerobiłem do swoich potrzeb:
private void liczCzas () {
Ustawienia.startTime = System.currentTimeMillis();
long currTime = Ustawienia.startTime;
while (currTime - Ustawienia.startTime < Ustawienia.GAME_TIME) {
long elapsedTime = System.currentTimeMillis() - currTime;
//licz czas gry - może się przydać w ograniczeniach czasowych
//w tej demonstracji nie wykorzystane
currTime += elapsedTime;
Ustawienia.actualTime = 60-((currTime-Ustawienia.startTime)/1000);
repaint();
try {
Thread.sleep(80);
} catch (InterruptedException ex) {System.out.println("Wyjątek: "+ex); }
}
Gdy dodaję linijkę wywołania funkcji i uruchamiam grę, to przez 60s nic się nie dzieje, a po tym czasie uruchamia się gra i na ekranie widzę napis: POZOSTAŁY CZAS: 0.0s.
Czyli widać, że licznik sam w sobie dobrze działa, ale w złym miejscu jest wywoływany.
Jest jakieś inne rozwiązanie?
Stworzyć nową klasę dla licznika i potem wywołać obiekt tej klasy w oknie gry?
Proszę o pomoc.