-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMain.js
91 lines (78 loc) · 2.51 KB
/
Main.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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
const game = new Game();
const player = new Player();
const nextLevel = document.querySelector("#next");
const restart = document.querySelector("#restart");
restart.style.display = "none";
nextLevel.addEventListener("click", () => {
console.log("clicked");
levels++;
document.querySelector("#next-level").style.display = "none";
const container = document.querySelector(".game");
player.destroy(container, document.querySelector(".player"));
game.init();
if (levels <= 3) {
window.requestAnimationFrame(update);
} else {
restart.style.display = "block";
}
});
game.init();
function update(e) {
const currentTime = Date.now();
const dt = (currentTime - game.lastTime) / 1000.0;
if (game.gameOver) {
document.querySelector(".game-over").style.display = "block";
document.getElementsByClassName("score_modal")[2].innerHTML =
"Your score: " + SCORE;
return;
}
if (player.won()) {
document.querySelector("#next-level").style.display = "block";
document.getElementsByClassName("score_modal")[1].innerHTML =
"Your score: " + SCORE;
save_progress();
return;
}
const $container = document.querySelector(".game");
player.update(dt, $container);
updateLasers(dt, $container);
updateEnemies(dt, $container);
updateEnemyLasers(dt, $container);
updatePresents(dt, $container);
game.lastTime = currentTime;
window.requestAnimationFrame(update);
}
function onKeyDown(e) {
if (e.keyCode === KEY_CODE_LEFT) {
game.leftPressed = true;
} else if (e.keyCode === KEY_CODE_RIGHT) {
game.rightPressed = true;
} else if (e.keyCode === KEY_CODE_SPACE) {
game.spacePressed = true;
}
}
function onKeyUp(e) {
if (e.keyCode === KEY_CODE_LEFT) {
game.leftPressed = false;
} else if (e.keyCode === KEY_CODE_RIGHT) {
game.rightPressed = false;
} else if (e.keyCode === KEY_CODE_SPACE) {
game.spacePressed = false;
} else if (e.key === "m" || e.key == "M") {
mute_game();
game.spacePressed = false;
}
}
function mute_game() {
AUDIO = !AUDIO;
if (AUDIO) document.getElementById("mute_icon").style.display = "none";
else document.getElementById("mute_icon").style.display = "block";
}
window.addEventListener("keydown", onKeyDown);
window.addEventListener("keyup", onKeyUp);
document.getElementById("mute").addEventListener("click", mute_game);
document.getElementById("mute_icon").addEventListener("click", function () {
AUDIO = !AUDIO;
document.getElementById("mute_icon").style.display = "none";
});
window.requestAnimationFrame(update);