Pętla stałokrokowa - po co ciągłe wywoływanie funkcji rysującej?
Ostatnio zmodyfikowano 2015-07-13 14:14
Patrycjerz Temat założony przez niniejszego użytkownika |
Pętla stałokrokowa - po co ciągłe wywoływanie funkcji rysującej? » 2015-07-11 18:21:33 Witajcie, czytając jeden z artykułów o tworzeniu gier spotkałem się z prezentacją pętli stałokrokowej. Znałem ją wcześniej, ale chciałem doczytać jakie ma wady i zalety, lecz jedna sprawa mnie zaciekawiła. Po co ciągle rysować klatkę, nawet wtedy, kiedy stan gry nie zostaje zaktualizowany? Oto przykładowy kod: float dt = 0.0f; float lastUpdateTime = GetCurrentTime();
float accumulator = 0.0f; const float TIME_STEP = 0.03;
while( true ) { dt = GetCurrentTime() - lastUpdateTime; lastUpdate += dt; accumulator += dt; GrabInput(); while( accumulator > TIME_STEP ) { UpdateGame( TIME_STEP ); accumulator -= TIME_STEP; } RenderGame(); }
(Źródło: http://temporal.pr0.pl/devblog/download/arts/fixed_step/fixed_step.pdf)Oczywiście miło by mi było, gdybyście zapisali także własne osobiste spostrzeżenia co do tego rodzaju pętli. Za odpowiedzi z góry dziękuję. |
|
bingo009 |
» 2015-07-13 14:14:41 Jak masz animowaną mapę czy postacie, wtedy powinno być to rysowane niezależnie od obliczeń fizyki. Wogóle rysowanie/renderowanie powinno się wykonywać jak najszybciej i niezależnie od obliczeń fizyki. Ponadto ta pętla stałokrokowa ma za zadanie obliczanie fizyki, które powinno być w miarę szybkie, jak dodasz tam renderowanie, to każdy obieg tej pętli będzie trwał znacznie dłużej, niż powinien. |
|
« 1 » |