GameLoop jest wysokopoziomowym wrapperem nad niskopoziomowym systemem pętli. Enkapsuluje tworzenie i zarządzanie pętlą gry, która wielokrotnie wykonuje funkcje update i render w stałym kroku czasowym. Upraszcza uruchamianie, zatrzymywanie i sprawdzanie stanu pętli.
Utworzenie → Aktualizacja → Destrukcja
GameLoop jest tworzona z callbackami update i render. Wewnętrznie inicjalizuje stan pętli poprzez createLoop.update(dt) oraz render(alpha) zgodnie z implementacją bazowej pętli.stop(), co zatrzymuje jej wykonanie. Sama instancja nie zwalnia jawnie zasobów poza zatrzymaniem pętli.update(dt: number): Funkcja wywoływana przy każdym ticku z czasem delta.render(alpha: number): Funkcja wywoływana do interpolacji renderowania.fixedDelta?: number: Stały interwał kroku czasowego (domyślnie: 1/60).LoopState utworzony przez createLoop(update, render, fixedDelta).startLoop(state) rozpoczyna pętlę.stopLoop(state) zatrzymuje pętlę.state.running jest używana do określenia, czy pętla jest aktywna.const loop = new GameLoop(
(dt) => {
// update game logic
console.log("update", dt);
},
(alpha) => {
// render frame
console.log("render", alpha);
}
);
loop.start();
setTimeout(() => {
console.log(loop.isRunning()); // true
loop.stop();
}, 2000);
LoopStatecreateLoopstartLoopstopLoop