diff --git a/html/images/space.svg b/html/images/space.svg index 4397bc2..324aab6 100644 --- a/html/images/space.svg +++ b/html/images/space.svg @@ -73,11 +73,13 @@ - - - - - + + + + + + + @@ -138,7 +140,6 @@ const ship = document.querySelector(".ship"); const gun = ship.querySelector('#cannon'); const shipBody = ship.querySelector("#body"); - const wall = document.querySelector('#wall'); const walls = document.querySelectorAll('.wall'); const bulletsContainer = document.querySelector("#bullets"); const triangleContainer = document.querySelector('#triangles'); @@ -147,11 +148,6 @@ const bulletPt = svg.createSVGPoint(); const cornerPt = svg.createSVGPoint(); - const wallCorners = wall.getAttribute('points').split(' ').map(coords => { - const [x, y] = coords.split(','); - return [+x, +y]; - }); - const allWallCorners = [...walls].map(wall => wall.getAttribute('points').split(' ').map(coords => { const [x, y] = coords.split(','); @@ -159,24 +155,22 @@ } )); - const edgePts = wallCorners.map((pt, i, arr) => [pt, arr[(i + 1) % arr.length]]); const allEdgePts = allWallCorners.map(w => w.map((pt, i, arr) => [pt, arr[(i + 1) % arr.length]]) ); - const startingEdges = findEdges(edgePts, position); const allStartingEdges = findAllEdges(allEdgePts, position); function distance(x1, y1, x2, y2) { return Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2); } - function drawAllEdges(edges) { - edges.forEach(edge => drawEdges(edge)); + function drawAllEdges(walls) { + walls.forEach(edges => drawEdges(edges)); } - function drawEdges(lpts) { - let edges = lpts.map(e => e.join(' ')); + function drawEdges(pts) { + let edges = pts.map(e => e.join(' ')); edges.forEach(e => { const [x, y] = e.split(' '); @@ -422,7 +416,9 @@ } function updateEdges(position) { - const collisionEdges = findEdges(edgePts, position); + const collisionEdges = findAllEdges(allEdgePts, position); + + // console.log(collisionEdges); [...edgeContainer.children].forEach(l => { const x1 = l.getAttribute('x1'); @@ -433,8 +429,8 @@ if (collisionEdges.includes(edge)) if ([ - edgeContainer.childElementCount <= startingEdges.length, - !startingEdges.includes(edge) + edgeContainer.childElementCount <= allStartingEdges.length, + !allStartingEdges.includes(edge) ].some(c => c)) l.remove(); }); @@ -478,7 +474,8 @@ if (restart) { restart = false; [...edgeContainer.children].forEach(c => c.remove());; - drawEdges(edgePts); + // drawEdges(edgePts); + drawAllEdges(allEdgePts); } // const collision = detectCollision(wallCorners, position, findEdges(edgePts, position)); @@ -500,7 +497,7 @@ requestAnimationFrame(t => animate(t)); } - drawEdges(edgePts); + // drawEdges(edgePts); drawAllEdges(allEdgePts); let force = 1;