forked from code-jammers/js13kb-game
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
48 lines (43 loc) · 1.08 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
changeScene = (scene) => {
cs = G.allScenes.find((s) => s === scene);
if (cs) {
G.cs = cs;
const os = document.querySelector("[in-progress]");
if (os) {
document.body.removeChild(os);
}
switch (cs) {
case GAME_SCENE:
renderWebComponent("sd-game-scene");
break;
case LOADING_SCENE:
default:
renderWebComponent("sd-loading-scene");
break;
}
}
};
renderWebComponent = (tagname) => {
let el = dcr(tagname,document);
el.setAttribute("in-progress", true);
el.style.cssText = "opacity: 0; display: block; transition: opacity .3s";
dba(el,document);
setTimeout(() => {
el.style.opacity = "1";
}, 200);
};
changeScene(LOADING_SCENE);
addEventListener("scene-change", (e) => {
changeScene(e.detail);
});
Promise.all(
["sd-game-scene"].map((component) =>
customElements.whenDefined(component)
)
).then((p) => {
setTimeout(() => {
changeScene(GAME_SCENE);
}, 1000);
});
addEventListener("show-game", (e) => changeScene(GAME_SCENE));
addEventListener("show-controls", (e) => alert("coming soon"));