Witaj!
several dodał nowy post w wątku: Problem z gameloopem i renderowaniem animacji
No ja bym spróbował najpierw zrobić to z palca zamiast polegać na frameTime: f32 = rl.GetFrameTime() który z jakiegoś powodu zwraca float? Sprawdzałeś pod debuggerem czy wszystkie zmienne i stałe czasowe mają tą samą rozdzielczość? Nie wiem też co robi updatePlayerInput ale w tej pętli "nadganiającej" wykonujesz tylko symulację, wejście aplikujesz w głównej na początku lub na końcu. Coś w ten deseń:
Kopiuj
const int tickRate = 120; int ptime = clock(); // time since last frame int offset = 0; // time since last physics tick MyState state; while (state.active) { int delta = deltaTime(ptime, offset) + offset; ptime = clock(); for (int i = 0; i < delta / (1000 / tickRate); i++) { simulationTick(state); } offset = delta % tickRate; render(state); auto input = getInput(); applyInput(input, state); }
Z poważaniem, 4programmers.net
|