xxxxxxxxxx
49
let target;
let obstacles = [];
let square;
function setup() {
createCanvas(400, 400);
target = createVector(random(width), random(height));
for (let i = 0; i < 5; i++) {
let obstacle = createVector(random(width), random(height));
obstacles.push(obstacle);
}
square = createVector(width/2, height/2);
}
function draw() {
background(220);
for (let i = 0; i < obstacles.length; i++) {
let obstacle = obstacles[i];
let distance = p5.Vector.sub(square, obstacle);
let magnitude = 50/distance.mag();
let direction = distance.normalize();
let force = direction.mult(magnitude);
square.add(force);
fill(255, 0, 0);
ellipse(obstacle.x, obstacle.y, 20);
}
let distance = p5.Vector.sub(target, square);
let magnitude = 0.5 * distance.mag();
let direction = distance.normalize();
let force = direction.mult(magnitude);
square.add(force);
fill(0, 255, 0);
ellipse(target.x, target.y, 20);
fill(0, 0, 255);
rect(square.x-10, square.y-10, 20, 20);
target.x += random(-5, 5);
target.y += random(-5, 5);
for (let i = 0; i < obstacles.length; i++) {
obstacles[i].x += random(-5, 5);
obstacles[i].y += random(-5, 5);
}
}