//ceci n'est pas une méthode statique valarray<double> MassiveParticle::compacc(MassiveParticle part2) const { double r(0), intensity(0); valarray<double> dir(0.,3), acc(0.,3); r = distanceTo(part2); dir = directionTo(part2); intensity = - G * part2.m_mass / (r*r); acc = dir * intensity; return acc; }
//déplacement ciblé void Bee::targetMove(sf::Time dt, Vec2d target) { if (avoidanceClock_ < sf::Time::Zero ) { speed_ = directionTo(target).normalised() * speed_.length();// on fait appel à la fonction codée dans Vec2d } else { avoidanceClock_ -= dt; } if (!movebee(dt)) { avoidanceClock_ = sf::seconds(delay); } }
double Collider::distanceTo(const Vec2d& to) const { return directionTo(to).length(); }
Vec2d Collider::directionTo(const Collider& other) const { return directionTo(other.getPosition()); }