From 7c419d8e333a2c39907bd3e75c6cefb6db2751c5 Mon Sep 17 00:00:00 2001 From: Joshua Perry <45966243+jpez-development@users.noreply.github.com> Date: Sun, 29 May 2022 12:35:21 +0100 Subject: [PATCH] changed collision logic for bombs --- scripts/enemy.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/enemy.js b/scripts/enemy.js index 11a7094..88283b1 100644 --- a/scripts/enemy.js +++ b/scripts/enemy.js @@ -38,9 +38,11 @@ function spawnBomb() { function fall() { for (let element of bombs) { element.style.top = (element.offsetTop + 10) + "px"; - var closestElement = document.elementFromPoint(element.offsetLeft, element.offsetTop+10); - if (!closestElement.classList.contains("sky") && !closestElement.classList.contains("alien") && !closestElement.classList.contains("bomb") && !closestElement.classList.contains("explosion")) { - if(Math.floor(Math.random() * 100) < 10 || element.bottom >= document.body.bottom || closestElement.classList.contains("character")) { + var elemRect = element.getBoundingClientRect(); + var bodyRect = document.body.getBoundingClientRect(); + var skyRect = document.getElementsByClassName("sky")[0].getBoundingClientRect(); + if (elemRect.bottom >= skyRect.bottom || elemRect.bottom <= bodyRect.offsetHeight) { + if(Math.floor(Math.random() * 100) < 10) { element.className = "explosion"; console.log("Explosion") setTimeout(() => {element.remove()}, 3000);