Add start of ship rendering

This commit is contained in:
asraelite 2018-03-03 00:04:17 +00:00
parent 4a253b0184
commit 704c82838a
15 changed files with 199 additions and 13 deletions

26
js/world/body.mjs Normal file
View file

@ -0,0 +1,26 @@
import {GRAVITATIONAL_CONSTANT as G} from '../consts.mjs';
export default class Body {
constructor(x, y, mass) {
this.x = x;
this.y = y;
this.r = 0;
this.xvel = 0;
this.yvel = 0;
this.rvel = 0;
this.mass = mass;
}
tickGravity(bodies) {
bodies.forEach(b => {
let force = b.mass / this.mass / (distanceTo(b) ** 2) * G;
let angle = Math.atan2(b.y - this.y, b.x - this.x);
this.xvel += Math.cos(angle) * force;
this.yvel += Math.sin(angle) * force;
});
}
distanceTo(body) {
return Math.sqrt(((body.x - this.x) ** 2) + ((body.y - this.y) ** 2));
}
}