Przeglądaj źródła

Apply gravity to controller based on last dt

Daniele Bartolini 12 lat temu
rodzic
commit
c661ca72ca

+ 2 - 2
engine/physics/PhysicsWorld.cpp

@@ -161,12 +161,12 @@ void PhysicsWorld::set_gravity(const Vector3& g)
 }
 
 //-----------------------------------------------------------------------------
-void PhysicsWorld::update()
+void PhysicsWorld::update(float dt)
 {
 	// Apply gravity to controllers
 	for (Controller** cc = m_controllers.begin(); cc != m_controllers.end(); cc++)
 	{
-		(*cc)->move(Vector3(0, -9.81, 0));
+		(*cc)->move(Vector3(0, -9.81 * dt, 0));
 	}
 
 	// Update world pose of the actors

+ 1 - 1
engine/physics/PhysicsWorld.h

@@ -73,7 +73,7 @@ public:
 	Vector3						gravity() const;
 	void						set_gravity(const Vector3& g);
 
-	void						update();
+	void						update(float dt);
 
 public:
 

+ 1 - 1
engine/world/World.cpp

@@ -131,7 +131,7 @@ void World::update(float dt)
 	m_scenegraph_manager.update();
 
 	// Update physics world
-	m_physics_world.update();
+	m_physics_world.update(dt);
 
 	m_scenegraph_manager.update();
 }