[Racer-svn] SF.net SVN: racer:[61] trunk/racer/Engine/GameObjects/Car.cpp
Status: Alpha
Brought to you by:
jlegg
From: <jl...@us...> - 2009-10-10 15:50:17
|
Revision: 61 http://racer.svn.sourceforge.net/racer/?rev=61&view=rev Author: jlegg Date: 2009-10-10 15:50:09 +0000 (Sat, 10 Oct 2009) Log Message: ----------- Making cornering easier. Modified Paths: -------------- trunk/racer/Engine/GameObjects/Car.cpp Modified: trunk/racer/Engine/GameObjects/Car.cpp =================================================================== --- trunk/racer/Engine/GameObjects/Car.cpp 2009-10-08 16:05:28 UTC (rev 60) +++ trunk/racer/Engine/GameObjects/Car.cpp 2009-10-10 15:50:09 UTC (rev 61) @@ -282,7 +282,7 @@ // turning left and right. btVector3 torque_vector = btVector3(0.0, 0.0, - torque.getZ() * 0.001632653); + torque.getZ() * 0.003265306); local_torque = rotation_transform(torque_vector); } } else { @@ -304,8 +304,16 @@ // clamp to maximum achievable using other slide key or reverse, and don't change vertical motion. unforce.setMin(btVector3(32767, 32767, 0)); unforce.setMax(btVector3(-32767, -16383, 0)); - // swap sideways velocity for forward velocity to help cornering. - unforce.setX(unforce.x() - sideways_velocity * 25.0); + + // swap sideways velocity for forward velocity to help cornering + // when sliding in the right direction, we want to reduce the effect though. + btScalar slide_assist = sideways_velocity * force.getX(); + // If sliding the wrong way, don't reduce the effect. + if (slide_assist < 0.0) slide_assist = 0.0; + // If sliding the right way really fast, put a limit on the speed. + if (slide_assist > 35.0) slide_assist = 35.0; + unforce.setX(unforce.x() - sideways_velocity * (50.0 - slide_assist)); + if (sideways_velocity < 0) { unforce.setY(unforce.y() - sideways_velocity * 15.0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |