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