From 2848ca870dd89069a15d0c5ec7426f993c155d41 Mon Sep 17 00:00:00 2001 From: Nick Gasson Date: Sun, 28 Mar 2010 11:02:24 +0100 Subject: [PATCH] Fix resistance equation --- src/Engine.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/Engine.cpp b/src/Engine.cpp index f72785e..3706c6f 100644 --- a/src/Engine.cpp +++ b/src/Engine.cpp @@ -161,9 +161,9 @@ double Engine::resistance() const { const double sign = mySpeed < 0.0 ? -1.0 : 1.0; - const double a = 0.0; - const double b = 0.1; - const double c = 0.05; + const double a = 4.0; + const double b = 0.05; + const double c = 0.006; const double absSpeed = abs(mySpeed); @@ -185,9 +185,7 @@ double Engine::brakeForce() const // Brake always acts against direction of motion double dir; - /*if (abs(mySpeed) < STOP_SPEED) - dir = 0.0; - else*/ if (mySpeed < 0.0) + if (mySpeed < 0.0) dir = -1.0; else dir = 1.0; @@ -225,7 +223,7 @@ void Engine::update(int delta, float gradient) const double a = ((netP - Q - B + G) / myMass) * deltaSeconds; // mySpeed = max(mySpeed + a, 0.0); - if (abs(mySpeed) < STOP_SPEED && myThrottle == 0) { + if (abs(mySpeed) < STOP_SPEED && myThrottle == 0 && isBrakeOn) { mySpeed = 0.0; haveStopped = true; } -- 2.39.2