xxxxxxxxxx
42
// Flocking
// Daniel Shiffman
// https://thecodingtrain.com/CodingChallenges/124-flocking-boids.html
// https://youtu.be/mhjuuHl6qHM
// Note: Use chrome for the best performance
const flock = [];
let alignSlider, cohesionSlider, separationSlider;
let quadTree;
function setup() {
createCanvas(640, 480);
quadTree = new QuadTree(Infinity, 30, new Rect(0, 0, width, height));
alignSlider = createSlider(0, 2, 1, 0.1);
cohesionSlider = createSlider(0, 2, 1, 0.1);
separationSlider = createSlider(0, 2, 1.25, 0.1);
for (let i = 0; i < 500; i++) {
flock.push(new Boid());
}
}
function draw() {
quadTree.clear();
for (const boid of flock) {
quadTree.addItem(boid.position.x, boid.position.y, boid);
}
background(51);
quadTree.debugRender();
for (const boid of flock) {
boid.edges();
boid.flock(flock);
boid.update();
boid.show();
}
}