Corrections mineures
This commit is contained in:
parent
b2e3c5f6cc
commit
80a9a2ef26
|
@ -165,7 +165,7 @@ bool Ball::getNormal(Block& obj, sf::Vector2f& normal) {
|
||||||
// si la balle est à l'extérieur et que
|
// si la balle est à l'extérieur et que
|
||||||
// la normale est plus longue que son rayon,
|
// la normale est plus longue que son rayon,
|
||||||
// il n'y a pas collision
|
// il n'y a pas collision
|
||||||
if (!isInside && squaredLength > 20 * 20) {
|
if (!isInside && squaredLength >= 20 * 20) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -85,26 +85,13 @@ void Engine::update() {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
float restitution = std::min(objA->getRestitution(), objB->getRestitution());
|
|
||||||
|
|
||||||
// calcul de l'inverse des masses de A et B. Pour rappel,
|
|
||||||
// une masse infinie est modélisée par 0, donc l'inverse
|
|
||||||
// d'une telle masse est nul
|
|
||||||
float invMassA = objA->getMass();
|
|
||||||
float invMassB = objB->getMass();
|
|
||||||
|
|
||||||
if (invMassA != 0) {
|
|
||||||
invMassA = 1.f / invMassA;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (invMassB != 0) {
|
|
||||||
invMassB = 1.f / invMassB;
|
|
||||||
}
|
|
||||||
|
|
||||||
// calcule et applique l'impulsion de résolution de la collision
|
// calcule et applique l'impulsion de résolution de la collision
|
||||||
float impulse = (-(1 + restitution) * dotnormal) / (invMassA + invMassB);
|
float restitution = std::min(objA->getRestitution(), objB->getRestitution());
|
||||||
objA->setVelocity(objA->getVelocity() - invMassA * impulse * normal);
|
float impulse = (-(1 + restitution) * dotnormal) /
|
||||||
objB->setVelocity(objB->getVelocity() + invMassB * impulse * normal);
|
(objA->getMassInvert() + objB->getMassInvert());
|
||||||
|
|
||||||
|
objA->setVelocity(objA->getVelocity() - objA->getMassInvert() * impulse * normal);
|
||||||
|
objB->setVelocity(objB->getVelocity() + objB->getMassInvert() * impulse * normal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue