xxxxxxxxxx
55
var moverA;
var moverB;
function setup() {
createCanvas(400, 400);
moverA = new Mover(100, 100, 1);
moverB = new Mover(300, 100, 56);
fill(255, 100);
}
function draw() {
background(31);
moverA.applyForce(createVector(0, 1 * moverA.m));
moverB.applyForce(createVector(0, 1 * moverB.m));
moverA.update();
moverB.update();
moverA.display();
moverB.display();
}
class Mover {
constructor(x, y, m) {
this.pos = createVector(x, y);
this.m = m;
this.vel = createVector(0, 0);
this.acc = createVector(0, 0);
this.r = sqrt(m) * 16;
}
display() {
ellipse(this.pos.x, this.pos.y, this.r, this.r);
}
applyForce(force) {
let f = p5.Vector.div(force, this.m);
this.vel.add(f);
}
update() {
this.vel.add(this.acc);
this.pos.add(this.vel);
this.acc.set(0, 0);
this.edges()
}
edges() {
if (this.pos.y + this.r / 2 >= height) {
this.pos.y = height - this.r / 2;
this.vel.y *= -1;
}
}
}