diff --git a/main.js b/main.js index 22231f7..877cd3e 100644 --- a/main.js +++ b/main.js @@ -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); } }); - sceneSelectEl.addEventListener("change", (e) => applyScene(e.target.value)); - populateSceneSelect(); - sceneSelectEl.value = currentScene.id; + if (sceneSelectEl) { + sceneSelectEl.addEventListener("change", (e) => applyScene(e.target.value)); + } highScore = loadHighScore(); - buildLegend(); - updateHud(); - startSpawner(); + populateSceneSelect(); + applyScene(currentScene.id); })();