Fix scene selector init and start game on load
This commit is contained in:
14
main.js
14
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);
|
||||
}
|
||||
});
|
||||
if (sceneSelectEl) {
|
||||
sceneSelectEl.addEventListener("change", (e) => applyScene(e.target.value));
|
||||
populateSceneSelect();
|
||||
sceneSelectEl.value = currentScene.id;
|
||||
}
|
||||
highScore = loadHighScore();
|
||||
buildLegend();
|
||||
updateHud();
|
||||
startSpawner();
|
||||
populateSceneSelect();
|
||||
applyScene(currentScene.id);
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user