W jakis sposób za pomocą LibGDX wykonać proste odliczanie?

0

Witajcie, probuje doslownie od 2h znalezc jakies informacje dla poczatkujacego ale nie jestem w stanie. Cos tam probowalem z klasa TIMER, jednakze nic mi to nie pomoglo.

Chcialbym przy uruchomieniu apk zrobic proste odliczanie od 5 do 1.. Niestety nie wiem jak.
Licze na wskazowki

0

Wskazówki dostaniesz, ale nie gotowiec. Dlatego najpierw pokaż co masz i co dokładnie Ci nie działa.

0

dostalem rade i przeszedlem na deltatime, jednakze nie rozumiem do konca jego dzialania tyle co mam:

timer += Gdx.graphics.getDeltaTime();
	    if (timer>1)  // co jedna sekunde
	    {
	     
	       System.out.println(timer++);
	       timer = 0;
	    
	    }

usunięcie znacznika <code> - @furious programming

0

Funkcja render wykonuje się cyklicznie i będąc w niej możesz sprawdzić ile czasu minęło od ostatniego wywołania. Czas ten liczony w sekundach i zwykle jest jej częścią.

W kodzie powyżej dodajesz ten czas aż nie uzbiera się ponad jedna sekunda i wtedy wyświetlasz tekst oraz zerujesz zebrany czas. Swoją drogą, to dokładnie ten kod ma rozjazd i w czasie np. 20 sekund może wyświetlić timer tylko 18 razy. Twoim zadaniem jest zgadnąć dlaczego :).

PS. Wkładaj kod w znaczniki z odpowiednim językiem. Wtedy ładnie koloruje składnię i więcej widać.

@Edit
Obstawiam też że w println powinien być jakiś counter.

0

niestety nie wiem :/

timer += Gdx.graphics.getDeltaTime();
		if (timer >5)
		{
			System.out.println("Start");
			timer=0;
		}

Teraz 2 problemy. a) - jak pokazac to liczenie do 5. b) jak zatrzymac to dodawanie po minieciu 5 sekund i wyswietleniu START

0

Problem a:

  1. Dodajesz counter integerowy:
  2. Gdy counter wskazuje 0 zamiast niego wyświetlasz "Start", jeżeli nie to wyświetlasz jego wartość
  3. Dekrementujesz counter.

Dwa ostatnie punktu da się czytelnie zapisać za pomocą jednej linijki.

Problem b:

  • (łatwo) Zrób flagę boolean która wskazuje czy odliczanie ma się wyświetlać. Po wyświetleniu "Start" ustaw ją na false. Cały ten kod umieść w if'ie który sprawdza tą flagę.
  • (poprawnie) Gra powinna implementować stany (http://pl.wikipedia.org/wiki/Stan_%28wzorzec_projektowy%29). Odliczanie to pierwszy stan. W przypadku skończenia odliczania stan powinien się zmienić na kolejny, czyli np. na właściwą grę.
0
  1. Naucz się wyświetlać tekst na ekranie
  2. Połącz to z kodem powyżej
  3. ???
  4. PROFIT
0

niestety nie wiem jak zaimplementowac ten counter

0

No to musisz pokombinować. To są podstawy podstaw. Olej LibGDX i spróbuj napisać to w konsoli bo próbujesz zbyt dużo rzeczy naraz z zdecydowanie nie swojego poziomu.

0

a jezeli podejsc do problemu z takiej strony, wszystko ladnie odlicza, ale gra sie nie wlacza tylko ciemny ekran:

long current = System.currentTimeMillis(); 
		int i = 5; 
		boolean odliczaj = true;
		while(i >= 0) 
		 { 
			if(System.currentTimeMillis() - current > 1000 && odliczaj ) 
		     { 
			   System.out.println(i--); 
		       current = System.currentTimeMillis();
		       if (i==0)
		       {
		    	   System.out.println("Start");
		    	   odliczaj = false;
		    	  
		       }
		     } 
		 } 

1 użytkowników online, w tym zalogowanych: 0, gości: 1