CSY1018-assignment-2/scripts/launch.js

107 lines
2.9 KiB
JavaScript

/*Add events to webpage*/
var intervals = []
function showDisplay(mode) {
for (let element of document.body.getElementsByTagName("*")) {
element.style.display = mode;
}
}
/*Registers interval functions and trigger functions*/
function load() {
document.addEventListener("keydown", getKey)
document.addEventListener("keyup", stop)
document.getElementById("start").addEventListener("click", startGame)
showDisplay("none");
document.getElementById("start").style.display = "block";
}
/*Starts game functionality*/
function startGame() {
if (document.body.contains(document.getElementById("scoreBoard"))) {
document.getElementById("scoreBoard").remove();
}
document.getElementById("player").className = "character";
lives = 3;
showDisplay("block");
document.getElementById("start").style.display = "none";
document.getElementsByClassName("weapon")[0].style.display = "none";
intervals.push(setInterval(move, 10));
intervals.push(setInterval(spawnEnemy, 2500));
setTimeout(intervals.push(setInterval(fall, 50)), 2500);
intervals.push(setInterval(checkExplosion, 1));
}
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();
}
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";
setScore();
scoreBoard();
}
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();
scores.sort(twoDimensionalSort);
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);
}
board.id = "scoreBoard";
board.style.marginTop = "250px";
board.style.marginLeft = "auto";
board.style.marginRight = "auto";
board.style.display = "table";
document.body.appendChild(board);
}
function twoDimensionalSort(a, b) {
return b[0] - a[0];
}
document.addEventListener("DOMContentLoaded", load);