Estoy tratando de hacer una simulación de boids en p5js. Actualmente estoy tratando de implementar la regla de separación, siguiendo este tutorial . (La sección relevante es 6.11). Cada vez que dos boids chocan, uno de ellos es "teletransportado" al origen en lugar de evitar al otro boid. Reduje el problema a la función separate en mi clase Boid , que se encuentra a continuación.
separate(boids) { var count = 0 var desiredVelocity = createVector(0, 0) // loop through boids to find if any are too close for (const boid of boids) { const distance = this.position.dist(boid.position) if ((distance < this.desiredSeparation) && (boid.id != this.id)) { count += 1 // too close; move away from boid var steerAwayVector = boid.position.sub(this.position) this.drawArrow(steerAwayVector, this.position, '#eb9ac1') steerAwayVector.normalize() steerAwayVector.div(distance) desiredVelocity.add(steerAwayVector) } } if (count > 0) { desiredVelocity.setMag(this.maxSpeed) var steer = desiredVelocity.sub(this.velocity) steer.limit(this.maxForce) this.applyForce(steer) } }Vea mi código completo en github aquí . ¿Cuál/dónde está el problema? ¿Cómo soluciono este comportamiento?