Stop motion while paused

This commit is contained in:
Daddy32
2025-12-12 21:28:00 +01:00
parent 68ac1683c8
commit c1b40448ee

23
main.js
View File

@@ -69,6 +69,21 @@
const runner = Runner.create();
Runner.run(runner, engine);
let runnerActive = true;
const startRunner = () => {
if (!runnerActive) {
Runner.run(runner, engine);
runnerActive = true;
}
};
const stopRunner = () => {
if (runnerActive) {
Runner.stop(runner);
runnerActive = false;
}
};
// Static boundaries and scene-specific obstacles.
let boundaries = [];
@@ -213,6 +228,7 @@
isPaused = false;
resetChainVisuals();
stopSpawner();
stopRunner();
engine.timing.timeScale = 0;
pauseOverlay.classList.remove("visible");
pauseBtn.textContent = "Pause";
@@ -234,6 +250,7 @@
pauseOverlay.classList.remove("visible");
pauseBtn.textContent = "Pause";
engine.timing.timeScale = 1;
startRunner();
updateHud();
startSpawner();
};
@@ -252,8 +269,10 @@
if (isPaused) {
resetChainVisuals();
stopSpawner();
stopRunner();
engine.timing.timeScale = 0;
} else {
startRunner();
startSpawner();
engine.timing.timeScale = 1;
}
@@ -520,10 +539,12 @@
});
// Rotate any scene rotators slowly.
const dt = (engine.timing && engine.timing.delta) || 16;
const timeScale = engine.timing?.timeScale ?? 1;
if (isPaused || gameOver || timeScale === 0) return;
rotators.forEach((b) => {
const speed = b.plugin.rotSpeed || 0;
if (speed !== 0) {
Body.rotate(b, speed * (dt / 1000));
Body.rotate(b, speed * ((dt * timeScale) / 1000));
}
});
});