From 4c744b826907f58d98b5162fa5cc85786f361452 Mon Sep 17 00:00:00 2001 From: Joshua Perry <45966243+jpez-development@users.noreply.github.com> Date: Fri, 29 Apr 2022 11:11:54 +0100 Subject: [PATCH] added sprite deletion at end game, deth animation --- scripts/agent.js | 1 - scripts/control.js | 37 ++++++++++++++++++++----------------- scripts/enemy.js | 3 ++- scripts/launch.js | 26 +++++++++++++++++++++++--- scripts/player.js | 1 - scripts/projectile.js | 2 -- 6 files changed, 45 insertions(+), 25 deletions(-) delete mode 100644 scripts/agent.js delete mode 100644 scripts/player.js delete mode 100644 scripts/projectile.js diff --git a/scripts/agent.js b/scripts/agent.js deleted file mode 100644 index 1c73809..0000000 --- a/scripts/agent.js +++ /dev/null @@ -1 +0,0 @@ -/* logic for enemy movement and firing */ \ No newline at end of file diff --git a/scripts/control.js b/scripts/control.js index dfdaf67..15e52c3 100644 --- a/scripts/control.js +++ b/scripts/control.js @@ -94,23 +94,26 @@ function stop(event) { else if (event.keyCode == lastKey) { 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; + + } } } \ No newline at end of file diff --git a/scripts/enemy.js b/scripts/enemy.js index 599f758..3beb76f 100644 --- a/scripts/enemy.js +++ b/scripts/enemy.js @@ -61,7 +61,8 @@ function checkExplosion() { var elemRect = element.getBoundingClientRect(); var playerRect = document.getElementById("player").getBoundingClientRect(); 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(); } } } \ No newline at end of file diff --git a/scripts/launch.js b/scripts/launch.js index 5908283..3369e07 100644 --- a/scripts/launch.js +++ b/scripts/launch.js @@ -1,4 +1,5 @@ /*Add events to webpage*/ +var intervals = [] function showDisplay(mode) { for (let element of document.body.getElementsByTagName("*")) { @@ -10,7 +11,7 @@ function showDisplay(mode) { function load() { document.addEventListener("keydown", getKey) document.addEventListener("keyup", stop) - setInterval(move, 10); + intervals.push(setInterval(move, 10)); document.getElementById("start").addEventListener("click", startGame) showDisplay("none"); @@ -22,8 +23,27 @@ function startGame() { showDisplay("block"); document.getElementById("start").style.display = "none"; document.getElementsByClassName("weapon")[0].style.display = "none"; - setInterval(spawnEnemy, 2500); - setInterval(checkExplosion, 10); + intervals.push(setInterval(spawnEnemy, 2500)); + 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); diff --git a/scripts/player.js b/scripts/player.js deleted file mode 100644 index 47eeaa5..0000000 --- a/scripts/player.js +++ /dev/null @@ -1 +0,0 @@ -/*Logic for player lives and firing ability */ \ No newline at end of file diff --git a/scripts/projectile.js b/scripts/projectile.js deleted file mode 100644 index 4a0d746..0000000 --- a/scripts/projectile.js +++ /dev/null @@ -1,2 +0,0 @@ -/* logic for bombs */ -