0

p5jsでboidsシミュレーションを作ろうとしています。現在、このチュートリアルに従って、分離ルールを実装しようとしています。(関連するセクションは 6.11 です)。2 つのボイドが衝突するたびに、一方のボイドが他のボイドを回避する代わりに、原点に「テレポート」されます。問題を以下のクラスのseparate関数に絞り込みました。Boid

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)
    }
  }

github here で私の完全なコードを参照してください。何が/どこに問題がありますか? この動作を修正するにはどうすればよいですか?

4

0 に答える 0