added sprite deletion at end game, deth animation

This commit is contained in:
Joshua Perry 2022-04-29 11:11:54 +01:00
parent fbb628447c
commit 4c744b8269
6 changed files with 45 additions and 25 deletions

View File

@ -1 +0,0 @@
/* logic for enemy movement and firing */

View File

@ -94,23 +94,26 @@ function stop(event) {
else if (event.keyCode == lastKey) { else if (event.keyCode == lastKey) {
lastKey = 0; lastKey = 0;
} }
switch(event.keyCode) {
case 38: /*Up*/
case 87: /*W*/
player.className = "character stand up";
break;
case 40: /*Down*/
case 83: /*S*/
player.className = "character stand down";
break;
case 37: /*Left*/
case 65: /*A*/
player.className = "character stand left";
break;
case 39: /*Right*/
case 68: /*D*/
player.className = "character stand right";
break;
if (!player.classList.contains("dead")) {
switch(event.keyCode) {
case 38: /*Up*/
case 87: /*W*/
player.className = "character stand up";
break;
case 40: /*Down*/
case 83: /*S*/
player.className = "character stand down";
break;
case 37: /*Left*/
case 65: /*A*/
player.className = "character stand left";
break;
case 39: /*Right*/
case 68: /*D*/
player.className = "character stand right";
break;
}
} }
} }

View File

@ -61,7 +61,8 @@ function checkExplosion() {
var elemRect = element.getBoundingClientRect(); var elemRect = element.getBoundingClientRect();
var playerRect = document.getElementById("player").getBoundingClientRect(); var playerRect = document.getElementById("player").getBoundingClientRect();
if (elemRect.bottom >= playerRect.top && elemRect.right >= playerRect.left && elemRect.left <= playerRect.right && elemRect.top <= playerRect.bottom) { if (elemRect.bottom >= playerRect.top && elemRect.right >= playerRect.left && elemRect.left <= playerRect.right && elemRect.top <= playerRect.bottom) {
document.getElementById("player").style.display = "none"; document.getElementById("player").className = "character dead";
endGame();
} }
} }
} }

View File

@ -1,4 +1,5 @@
/*Add events to webpage*/ /*Add events to webpage*/
var intervals = []
function showDisplay(mode) { function showDisplay(mode) {
for (let element of document.body.getElementsByTagName("*")) { for (let element of document.body.getElementsByTagName("*")) {
@ -10,7 +11,7 @@ function showDisplay(mode) {
function load() { function load() {
document.addEventListener("keydown", getKey) document.addEventListener("keydown", getKey)
document.addEventListener("keyup", stop) document.addEventListener("keyup", stop)
setInterval(move, 10); intervals.push(setInterval(move, 10));
document.getElementById("start").addEventListener("click", startGame) document.getElementById("start").addEventListener("click", startGame)
showDisplay("none"); showDisplay("none");
@ -22,8 +23,27 @@ function startGame() {
showDisplay("block"); showDisplay("block");
document.getElementById("start").style.display = "none"; document.getElementById("start").style.display = "none";
document.getElementsByClassName("weapon")[0].style.display = "none"; document.getElementsByClassName("weapon")[0].style.display = "none";
setInterval(spawnEnemy, 2500); intervals.push(setInterval(spawnEnemy, 2500));
setInterval(checkExplosion, 10); intervals.push(setInterval(checkExplosion, 10));
}
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();
}
} }
document.addEventListener("DOMContentLoaded", load); document.addEventListener("DOMContentLoaded", load);

View File

@ -1 +0,0 @@
/*Logic for player lives and firing ability */

View File

@ -1,2 +0,0 @@
/* logic for bombs */