diff --git a/html/images/space.svg b/html/images/space.svg
index 29da4b2..e0210e4 100644
--- a/html/images/space.svg
+++ b/html/images/space.svg
@@ -352,26 +352,6 @@ function isAcute([xa, ya], [xb, yb], [xc, yc]) {
return alpha < halfPi && beta < halfPi;
}
-function findEdges(verts, [xc, yc]) {
- return verts.reduce((acc, [a, b]) => {
- const isFound = [isClockwise, isAcute].every(c => c(a, b, [xc, yc]));
- // return isFound ? [...acc, `${xa},${ya} ${xb},${yb}`] : acc;
- return isFound ? [...acc, `${a[0]},${a[1]} ${b[0]},${b[1]}`] : acc;
- }, []);
-}
-
-// function findAllEdges(verts, [xc, yc] = [0, 0]) {
-function findAllEdges(verts, [xc, yc]) {
- return verts.reduce((acc, points) => {
- points.forEach(([a, b]) => {
- const isFound = [isClockwise, isAcute].every(c => c(a, b, [xc, yc]));
- if (isFound) acc.push(`${a[0]},${a[1]} ${b[0]},${b[1]}`);
- });
-
- return acc;
- }, []);
-}
-
function getForwardEdges(edges, { x, y }) {
return edges.filter(({ edge }) => {
const { xa, ya, xb, yb } = edge;
@@ -752,29 +732,26 @@ function updateShip(s, elapsed) {
if (rotate > 0) gun.style.transform = `rotate(${(+degrees + rotationSpeed * elapsed) % 360}deg)`;
else if (rotate < 0) gun.style.transform = `rotate(${(+degrees - rotationSpeed * elapsed) % 360}deg)`;
- let { x: velocityX, y: velocityY } = s.velocity;
- let { x: accelerationX, y: accelerationY } = s.acceleration;
+ const { x: px, y: py } = s.position;
+ const { x: vx, y: vy } = s.velocity;
+ const { x: ax, y: ay } = s.acceleration;
- velocityX = velocityX > 0 && velocityX + accelerationX < 0 ? 0 : velocityX + accelerationX;
- velocityY = velocityY > 0 && velocityY + accelerationY < 0 ? 0 : velocityY + accelerationY;
+ s.velocity = {
+ x: vx > 0 && vx + ax < 0 ? 0 : vx + ax,
+ y: vy > 0 && vy + ay < 0 ? 0 : vy + ay
+ };
- s.velocity = { x: velocityX, y: velocityY };
velIndic.setAttribute('x2', s.velocity.x);
velIndic.setAttribute('y2', s.velocity.y);
acclIndic.setAttribute('x2', s.acceleration.x);
acclIndic.setAttribute('y2', s.acceleration.y);
- const changeX = 0.001 * elapsed * velocityX;
- const changeY = 0.001 * elapsed * velocityY;
-
- let { x, y } = s.position;
- // console.log("current position", x, y);
- let position = [positionX, positionY] = [changeX + x, changeY + y];
- let [xc, yc] = position;
- // console.log("future position", xc, yc);
+ const changeX = 0.001 * elapsed * s.velocity.x;
+ const changeY = 0.001 * elapsed * s.velocity.y;
+ const [xc, yc] = [changeX + px, changeY + py];
current = s.collision;
- s.collision = detectCollision(mapEdges, mapCorners, [xc, yc], [x, y], s.velocity, shipRadius);
+ s.collision = detectCollision(mapEdges, mapCorners, [xc, yc], [px, py], s.velocity, shipRadius);
if (s.collision) console.log("COLLISION", s.collision);
legs.style.display = s.gearDown ? "initial" : "none";
@@ -788,9 +765,9 @@ function updateShip(s, elapsed) {
s.isLanded = true;
let posP;
if (s.collision.corner) {
- posP = cornerContactPosition(xc, yc, x, y, s.collision.corner, shipRadius);
+ posP = cornerContactPosition(xc, yc, px, py, s.collision.corner, shipRadius);
} else if (s.collision.edge) {
- posP = edgeContactPosition(xc, yc, x, y, s.collision.edge, shipRadius);
+ posP = edgeContactPosition(xc, yc, px, py, s.collision.edge, shipRadius);
}
s.velocity = { x: 0, y: 0 };
@@ -804,8 +781,8 @@ function updateShip(s, elapsed) {
s.isLanded = false;
}
- s.position = { x: positionX, y: positionY }
- s.node.style.transform = `translate(${positionX}px, ${positionY}px)`;
+ s.position = { x: xc, y: yc };
+ s.node.style.transform = `translate(${xc}px, ${yc}px)`;
}
}
@@ -891,13 +868,10 @@ function init() {
s.isLanded = false;
s.gearDown = false;
- // [...edgeContainer.children].forEach(c => c.remove());;
- // drawAllEdges(edgePts);
- // allStartingEdges = findAllEdges(edgePts, position);
+ [...edgeContainer.children].forEach(c => c.remove());;
s.node.style.transform = `translate(${s.position.x}px, ${s.position.y}px)`;
wallElements.forEach(w => w.setAttribute('fill', 'black'));
- // bg.style.fill = 'black';
time.innerText = "0";
}