def rule1(self, this_boid, boids, flock): for boid in boids: if boid is not this_boid and (boid.pos - this_boid.pos).magnitude() < 70: flock.append(boid) if len(flock) > 0: avg = Vector.average([boid.pos for boid in flock]) return (avg - this_boid.pos)*(50.0/100.0) return Vector(0, 0)
def rule1(self, hoik, boids, flock): for boid in boids: if (boid.pos - hoik.pos).magnitude() < 200: flock.append(boid) if len(flock) == 0: for boid in boids: if (boid.pos - hoik.pos).magnitude() < 400: flock.append(boid) if len(flock) > 0: avg = Vector.average([boid.pos for boid in flock]) return (avg - hoik.pos)*(50.0/100.0) return Vector(0, 0)
def rule3(self, this_boid, flock): avg = Vector.average([boid.dir for boid in flock]) return avg - this_boid.dir * (1.0/8.0)