From 2df948ca0509b8bf58d1b7bc3a5ce0840132edd1 Mon Sep 17 00:00:00 2001 From: Fbenas Date: Tue, 13 Oct 2020 22:18:17 +0100 Subject: Fully sort detection of boids colliding --- public/js/app.js | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'public') diff --git a/public/js/app.js b/public/js/app.js index 8ba4cf8..361321c 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -70,7 +70,7 @@ class Boid { let rayAngle = tweakAngle + this.direction + rays[i]; // Check against all other boids - if (i == 0 && this.detectBoids(rayAngle, boids)) { + if (this.detectBoids(rayAngle, boids)) { continue; } @@ -81,8 +81,9 @@ class Boid { return rayAngle; } - console.log(this.x, this.y); + console.log('cannot find suitable ray'); + return false; } detectBoids(direction, boids) { @@ -112,10 +113,12 @@ class Boid { if (intersect) { console.log('boids intersect detected'); } + + return intersect; } boidsIntersect(boid) { - this.twoCirclesIntersect(this.radius, boid.radius, this.x, boid.x, this.y, boid.y); + return this.twoCirclesIntersect(this.radius, boid.radius, this.x, boid.x, this.y, boid.y); } twoCirclesIntersect(r1, r2, x1, x2, y1, y2) { @@ -327,10 +330,10 @@ class Scene { boids.push(new Boid( this.boid_radius, "black", - 300, 300, Math.random() * 360, - // Math.random() * (this.gameArea.canvas.width - 100) + 50, - // Math.random() * (this.gameArea.canvas.height - 100) + 50, - // Math.random() * 360, + // 300, 300, Math.random() * 360, + Math.random() * (this.gameArea.canvas.width - 100) + 50, + Math.random() * (this.gameArea.canvas.height - 100) + 50, + Math.random() * 360, i, this.width, this.height @@ -388,7 +391,7 @@ class Scene { } -let scene = new Scene(5, 2); +let scene = new Scene(5, 20); function stop() { scene.stop(); -- cgit v1.2.3