Correction d'un bug calcul de collision
This commit is contained in:
		
							parent
							
								
									3b8fc8f0b7
								
							
						
					
					
						commit
						5ff5e38928
					
				|  | @ -4,13 +4,10 @@ | |||
| #include "game.hpp" | ||||
| #include <iostream> | ||||
| #include <memory> | ||||
| #include <fstream> | ||||
| #include <fenv.h> | ||||
| 
 | ||||
| int main() { | ||||
|     Manager manager; | ||||
|     std::shared_ptr<Menu> menu = std::shared_ptr<Menu>(new Menu(manager)); | ||||
|     feenableexcept(FE_ALL_EXCEPT & ~FE_INEXACT); | ||||
| 
 | ||||
|     try { | ||||
|         manager.setState(menu); | ||||
|  |  | |||
|  | @ -228,7 +228,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; | ||||
|     } | ||||
| 
 | ||||
|  | @ -252,7 +252,6 @@ 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); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue