To nie jest "prościej", bo wasze dwa przykłady różnią się dzianiem. Różnica jest subtelna, ale ważna. Kos proponuje metodę dokładną, w której wywołanie będzie faktycznie co określony czas, plus minus czas jednej klatki, ale średnio dokładnie taki. Z kolei cybek zaproponował rozwiązanie, w którym kod "..." wykonuje się nie częściej niż co czasJakiMaMinac, ale zazwyczaj rzadziej, jeśli dobrze myślę to średnio o jakieś średni_czas_klatki/2.
Ja znam i stosuję obydwa te rozwiązania, zależnie od tego co robię. Różnica będzie widoczna na przykład wtedy, kiedy gra się przytnie i jedna klatka potrwa 10x dłużej, niż klatki trwają zwykle. Jeśli w tym czasie miałoby się dane zdarzenie zdążyć wykonać 2 razy, wg metody Kos-a kod "odrobi straty" i wykona je 2 razy pod rząd. Z kolei wg metody cybek-a wykona je raz i jak gdyby nigdy nic zacznie liczyć czas od nowa.
Inne porównanie polegałoby na zmierzeniu, ile razy kod wykonał się w określonym, dłuższym czasie. Wg Kos-a wykona się dokładnie tyle ile trzeba (czas_pomiaru / jakCzestoCosSieMaDziac) +/- 1, a wg metody cybek-a tyle samo lub mniej razy.
Hm, masz rację, ale wtedy wystarczy zamienić if'a na while'a i zamiast
timer=aktualnyCzas();
dać np. tak:
timer+=czasJakiMaMinac;
Wyjdzie wg. mnie na to samo co u Kosa, a jakoś przejrzyściej wydaje mi sie wygląda mój kod.
PS: cybka, nie cybeka
