Fix scene selector init and start game on load

This commit is contained in:
Daddy32
2025-12-12 12:38:06 +01:00
parent ccba28d646
commit 6fc2cbbb59

14
main.js
View File

@@ -127,6 +127,7 @@
const paletteLegendEl = document.getElementById("palette-legend");
const scoreEl = document.getElementById("score");
const highScoreEl = document.getElementById("high-score");
const sceneSelectEl = document.getElementById("scene-select");
const gameOverEl = document.getElementById("game-over");
const finalScoreEl = document.getElementById("final-score");
const restartBtn = document.getElementById("restart-btn");
@@ -166,7 +167,6 @@
boundaries = currentScene.createBodies(width, height);
World.add(world, boundaries);
};
rebuildSceneBodies();
const balls = [];
let spawnTimer = null;
@@ -196,6 +196,7 @@
};
const populateSceneSelect = () => {
if (!sceneSelectEl) return;
sceneSelectEl.innerHTML = "";
scenes.forEach((scene) => {
const opt = document.createElement("option");
@@ -208,7 +209,7 @@
const applyScene = (sceneId) => {
const next = scenes.find((s) => s.id === sceneId) || scenes[0];
currentScene = next;
sceneSelectEl.value = next.id;
if (sceneSelectEl) sceneSelectEl.value = next.id;
Object.assign(config, next.config);
engine.gravity.y = config.gravity;
rebuildSceneBodies();
@@ -579,11 +580,10 @@
setPaused(!isPaused);
}
});
if (sceneSelectEl) {
sceneSelectEl.addEventListener("change", (e) => applyScene(e.target.value));
populateSceneSelect();
sceneSelectEl.value = currentScene.id;
}
highScore = loadHighScore();
buildLegend();
updateHud();
startSpawner();
populateSceneSelect();
applyScene(currentScene.id);
})();