From 6b3237fd306b02b89f2091ce7deddb6bcc5482cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matt=C3=A9o=20Delabre?= Date: Mon, 11 Apr 2016 02:58:16 +0200 Subject: [PATCH] =?UTF-8?q?Ch=C3=A9ri,=20j'ai=20cass=C3=A9=20les=20collisi?= =?UTF-8?q?ons?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/object.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/object.cpp b/src/object.cpp index 8077e6b..0e20870 100644 --- a/src/object.cpp +++ b/src/object.cpp @@ -227,7 +227,7 @@ void Object::solveCollision(Level& level, Object::Ptr obj, const sf::Vector2f& n // si les directions sont divergentes, pas besoin // de résoudre la collision - if (dot_normal >= 0) { + if (dot_normal > 0) { return; } @@ -251,7 +251,8 @@ void Object::solveCollision(Level& level, Object::Ptr obj, const sf::Vector2f& n // on calcule le vecteur tangent qui porte la force de frottement. // les coefficients de friction utilisés sont les moyennes de ceux des deux objets rel_velo = obj->getVelocity() - getVelocity(); - + dot_normal = rel_velo.x * normal.x + rel_velo.y * normal.y; + sf::Vector2f tangent = rel_velo - dot_normal * normal; float tangent_length = std::sqrt(tangent.x * tangent.x + tangent.y * tangent.y);