diff --git a/html/images/space.svg b/html/images/space.svg
index 403c62f..1efb736 100644
--- a/html/images/space.svg
+++ b/html/images/space.svg
@@ -183,6 +183,45 @@
return +degrees;
}
+ function updateBullets(elapsed) {
+ bullets.forEach((bullet, index) => {
+ const deleteCount = 1;
+ bullets[index].time -= elapsed;
+
+ if (bullets[index].time > 0) {
+ bullets[index].y += 0.001 * elapsed * bullets[index].vy;
+ bullets[index].x += 0.001 * elapsed * bullets[index].vx;
+
+ let [bx, by] = wrapPos(bullets[index].x, bullets[index].y)
+ bullets[index].x = bx;
+ bullets[index].y = by;
+ bullet.node.style.transform = `translate(${bx}px, ${by}px)`;
+ } else {
+ bullet.node.remove();
+ bullets.splice(index, deleteCount);
+ }
+ });
+
+ }
+
+ function updateLines([positionX, positionY]) {
+ lines.forEach(line => {
+ line.setAttribute('x2', positionX);
+ line.setAttribute('y2', positionY);
+
+ // let slope = (+line.getAttribute('y2') - +line.getAttribute('y1')) / (+line.getAttribute('x2') - +line.getAttribute('x1'));
+ // slope = +slope.toFixed(15);
+ // console.log('slope', slope);
+
+ const firstP = line.getPointAtLength(1);
+ if (polygon.isPointInFill(firstP)) {
+ line.setAttribute('x2', line.getAttribute('x1'));
+ line.setAttribute('y2', line.getAttribute('y1'));
+ }
+ });
+
+ }
+
requestAnimationFrame(firstFrame);
function firstFrame(timestamp) {
@@ -238,41 +277,11 @@
const changeX = 0.001 * elapsed * velocityX;
const changeY = 0.001 * elapsed * velocityY;
- bullets.forEach((bullet, index) => {
- const deleteCount = 1;
- bullets[index].time -= elapsed;
-
- if (bullets[index].time > 0) {
- bullets[index].y += 0.001 * elapsed * bullets[index].vy;
- bullets[index].x += 0.001 * elapsed * bullets[index].vx;
-
- let [bx, by] = wrapPos(bullets[index].x, bullets[index].y)
- bullets[index].x = bx;
- bullets[index].y = by;
- bullet.node.style.transform = `translate(${bx}px, ${by}px)`;
- } else {
- bullet.node.remove();
- bullets.splice(index, deleteCount);
- }
- });
-
let [x, y] = getTranslate(hitbox);
- let [positionX, positionY] = wrapPos(changeX + x, changeY + y);
+ let position = [positionX, positionY] = wrapPos(changeX + x, changeY + y);
- lines.forEach(line => {
- line.setAttribute('x2', positionX);
- line.setAttribute('y2', positionY);
-
- // let slope = (+line.getAttribute('y2') - +line.getAttribute('y1')) / (+line.getAttribute('x2') - +line.getAttribute('x1'));
- // slope = +slope.toFixed(15);
- // console.log('slope', slope);
-
- const firstP = line.getPointAtLength(1);
- if (polygon.isPointInFill(firstP)) {
- line.setAttribute('x2', line.getAttribute('x1'));
- line.setAttribute('y2', line.getAttribute('y1'));
- }
- });
+ updateBullets(elapsed);
+ updateLines(position);
pt.x = positionX;
pt.y = positionY;