class Walker { constructor(x = 0, y = 0) { this.position = createVector(x, y) this.velocity = createVector(0, 0) this.accelaration = createVector(0, 0) } step() { let target = createVector(mouseX, mouseY) let difference = p5.Vector.sub(target, this.position) this.accelaration = difference.copy() this.accelaration.setMag(1000/difference.mag()) const dt = deltaTime/1000 this.velocity.add(p5.Vector.mult(this.accelaration, dt)) this.position.add(p5.Vector.mult(this.velocity, dt)) if (this.position.x < 0) { this.position.x += width } if (this.position.x > width) { this.position.x -= width } if (this.position.y < 0) { this.position.y += height } if (this.position.y > height) { this.position.y -= height } } draw() { stroke(0) circle(this.position.x, this.position.y, 20) } } let walker function setup() { createCanvas(640, 240) background(255) walker = new Walker(width/2, height/2) } function draw() { background(255) walker.step() walker.draw() }