# HG changeset patch # User saiam # Date 1227216917 0 # Node ID 3cb862028a24a0f160bbd9fd5742c4b71b3775d7 # Parent cbba9729e92bc3df75bb64c954c4a11667638e85 No nyt se toimii v?h?n paremmin. Koodia pit?? kyll? viel? siisti? aika huolella. diff -r cbba9729e92b -r 3cb862028a24 src/proto2/Physics.cc --- a/src/proto2/Physics.cc Thu Nov 20 21:25:09 2008 +0000 +++ b/src/proto2/Physics.cc Thu Nov 20 21:35:17 2008 +0000 @@ -43,22 +43,24 @@ // TODO: It might be possible to optimize by adding forces together std::queue newfq; Force tmpf; + Force total; posAfterTick = position; velAfterTick = velocity; while (!forceq.empty()) { tmpf = forceq.front(); if (tmpf.dt <= PHYSICS_TICK_MS) { // Force affects only one tick - integrate(tmpf.force, tmpf.dt); + total.force += tmpf.force; } else { // Add remaining time to next tick newfq.push(Force(tmpf.force, tmpf.dt - PHYSICS_TICK_MS)); - integrate(tmpf.force, PHYSICS_TICK_MS); + total.force += tmpf.force; } forceq.pop(); // Engine::log(DEBUG, "PhysicsObject.updatePosition") << "Current position: " << posAfterTick; } + integrate(total.force, PHYSICS_TICK_MS); forceq = newfq; - Vector newPosition = posAfterTick + (velAfterTick * PHYSICS_TICK_MS)/1000; + Vector newPosition = posAfterTick /*+ (velAfterTick * PHYSICS_TICK_MS)/1000*/; this->velocity = velAfterTick; Engine::log(DEBUG, "PhysicsObject.updatePosition") << "Nopeus: "<velocity; /*