2022-04-28 15:49:09 +00:00
|
|
|
/*Add events to webpage*/
|
2022-04-29 10:11:54 +00:00
|
|
|
var intervals = []
|
2022-04-28 15:49:09 +00:00
|
|
|
|
2022-04-28 19:22:43 +00:00
|
|
|
function showDisplay(mode) {
|
|
|
|
|
for (let element of document.body.getElementsByTagName("*")) {
|
|
|
|
|
element.style.display = mode;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-29 09:56:51 +00:00
|
|
|
/*Registers interval functions and trigger functions*/
|
2022-04-28 19:22:43 +00:00
|
|
|
function load() {
|
2022-04-28 16:58:53 +00:00
|
|
|
document.addEventListener("keydown", getKey)
|
2022-04-28 15:49:09 +00:00
|
|
|
document.addEventListener("keyup", stop)
|
|
|
|
|
document.getElementById("start").addEventListener("click", startGame)
|
2022-04-28 19:22:43 +00:00
|
|
|
|
|
|
|
|
showDisplay("none");
|
|
|
|
|
document.getElementById("start").style.display = "block";
|
2022-04-28 15:49:09 +00:00
|
|
|
}
|
|
|
|
|
|
2022-04-29 09:56:51 +00:00
|
|
|
/*Starts game functionality*/
|
2022-04-28 15:49:09 +00:00
|
|
|
function startGame() {
|
2022-04-29 11:10:37 +00:00
|
|
|
document.getElementById("player").className = "character";
|
2022-04-29 11:29:54 +00:00
|
|
|
lives = 3;
|
2022-04-28 19:22:43 +00:00
|
|
|
showDisplay("block");
|
|
|
|
|
document.getElementById("start").style.display = "none";
|
2022-04-28 19:56:09 +00:00
|
|
|
document.getElementsByClassName("weapon")[0].style.display = "none";
|
2022-04-29 11:10:37 +00:00
|
|
|
intervals.push(setInterval(move, 10));
|
2022-04-29 10:11:54 +00:00
|
|
|
intervals.push(setInterval(spawnEnemy, 2500));
|
2022-04-29 10:44:48 +00:00
|
|
|
setTimeout(intervals.push(setInterval(fall, 50)), 2500);
|
|
|
|
|
intervals.push(setInterval(checkExplosion, 1));
|
2022-04-29 10:11:54 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function endGame() {
|
|
|
|
|
for (let item of intervals) {
|
|
|
|
|
clearInterval(item);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (let item of document.getElementsByClassName("bomb")) {
|
|
|
|
|
item.remove();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (let item of document.getElementsByClassName("explosions")) {
|
|
|
|
|
item.remove();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (let alien of aliens) {
|
|
|
|
|
clearInterval(alien[1]);
|
|
|
|
|
alien[0].remove();
|
|
|
|
|
}
|
2022-04-29 11:10:37 +00:00
|
|
|
|
|
|
|
|
var button = document.getElementById("start");
|
|
|
|
|
var text = document.createElement("p");
|
|
|
|
|
text.innerHTML = "GAME OVER";
|
|
|
|
|
button.appendChild(text);
|
|
|
|
|
showDisplay("none");
|
|
|
|
|
button.style.display = "block";
|
|
|
|
|
text.style.display = "block";
|
2022-04-28 15:49:09 +00:00
|
|
|
}
|
2022-04-29 09:56:51 +00:00
|
|
|
|
2022-05-29 12:12:46 +00:00
|
|
|
function setScore() {
|
|
|
|
|
let name = prompt("Input your initials (e.g. JFK)", "AAA");
|
|
|
|
|
localStorage.setItem(name, score);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getScores() {
|
|
|
|
|
var values = [];
|
|
|
|
|
var keys = Object.keys(localStorage);
|
|
|
|
|
|
|
|
|
|
for (let i of keys) {
|
|
|
|
|
values.push([localStorage.getItem(i), i]);
|
|
|
|
|
}
|
|
|
|
|
return values;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function scoreBoard() {
|
|
|
|
|
var board = document.createElement("table");
|
|
|
|
|
var scores = getScores();
|
|
|
|
|
for (let i in scores) {
|
|
|
|
|
var row = document.createElement("tr");
|
|
|
|
|
var col1 = document.createElement("td");
|
|
|
|
|
var col2 = document.createElement("td");
|
|
|
|
|
col1.innerHTML = scores[i][0];
|
|
|
|
|
col2.innerHTML = scores[i][1];
|
|
|
|
|
row.appendChild(col1);
|
|
|
|
|
row.appendChild(col2);
|
|
|
|
|
board.appendChild(row);
|
|
|
|
|
}
|
|
|
|
|
document.body.appendChild(board);
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-28 19:22:43 +00:00
|
|
|
document.addEventListener("DOMContentLoaded", load);
|