From bb7483299595069fedcbbfe60285f452d8197a76 Mon Sep 17 00:00:00 2001 From: Thilo Behnke Date: Sat, 9 Jul 2022 19:57:24 +0200 Subject: [PATCH] enhancement/only-throttle-fps-in-multiplayer --- .../src/components/NetworkSessionWrapper.svelte | 2 +- client/svelte-client/src/components/TickWrapper.svelte | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/client/svelte-client/src/components/NetworkSessionWrapper.svelte b/client/svelte-client/src/components/NetworkSessionWrapper.svelte index f80ba30..524c7de 100644 --- a/client/svelte-client/src/components/NetworkSessionWrapper.svelte +++ b/client/svelte-client/src/components/NetworkSessionWrapper.svelte @@ -65,7 +65,7 @@ {:else if session.state === SessionState.RUNNING} {#if session.type === SessionType.HOST} - + {:else} diff --git a/client/svelte-client/src/components/TickWrapper.svelte b/client/svelte-client/src/components/TickWrapper.svelte index 671ed5a..9d65872 100644 --- a/client/svelte-client/src/components/TickWrapper.svelte +++ b/client/svelte-client/src/components/TickWrapper.svelte @@ -5,6 +5,7 @@ export let gameFieldStore: GameFieldStore; export let inputs; export let killLoopOnError = true; + export let throttle = false; const targetFps = 60; const frameThreshold = 1_000 / targetFps; @@ -22,6 +23,14 @@ (function loop() { frame = requestAnimationFrame(loop); const now = Date.now(); + if (!throttle) { + const dt = now - lastTime; + lastTime = now; + elapsed += dt; + fn(elapsed / 1_000, dt / 1_000); + return; + } + const dtMs = now - lastTime; if (dtMs < frameThreshold) { return;