[java]Równa prędkość gry na każdym urządzeniu


#1

Witam,

jestem już bliski skończenia mojej gry w javie, niestety jak w każdej grze trzeba rozwiązać pewien problem: w zależności od szybkości komputera/telefonu i czegoś tam jeszcze, gra będzie miała różną częstotliwość aktualizacji.

Czyli: chcę żeby gra działała wszędzie z równą szybkością.

Znalazłem coś takiego: http://temporal.pr0.pl/devblog/download ... d_step.pdf i tam faktycznie jest wytłumaczone co i jak, jednak nie działa to u mnie :confused:

Obawiam się, że po prostu źle rozumiem dwie funkcje, które autor przedstawił w poradniku:

Przykładowo tą:

accumulator = clamp(accumulator, 0, MAX_ACCUMULATED_TIME);

Zamieniłem na;

if(accumulator < 0){

			accumulator = 0;

		}

		if(accumulator > MAX_ACCUMULATED_TIME){

			accumulator = MAX_ACCUMULATED_TIME;

		}

Kod, podany w poradniku (oczywiście zmodyfikowany przeze mnie, tak aby działał w javie) powoduje, że gra działa przesadnie wolno :confused:

Czy dobrze to zamieniłem? ^^ Jest jakiś odpowiednik tej funkcji na podobną, ale w javie?

A może wy macie jakieś sprawdzone sposoby? :stuck_out_tongue:


(nnick) #2

Na początku pętli zapisujesz do zmiennej aktualny czas z dokładnością do ms, po zakończeniu wszystkich operacji jakie gra ma zrobić w jednym cyklu pobierasz znowu aktualny czas, sprawdzasz ile czasu grze zajęło wykonanie tego cyklu, jeżeli mniej niż przewidziana przez Ciebie ilość usypiasz ją na pozostały okres czasu


#3

raczej "więcej" :slight_smile:

A co jak program wykona się za mało razy na sekundę?

EDIT:

A w sumie to bez różnicy :stuck_out_tongue: Dziękuję za odpowiedź/i