Assuming your car dimensionless (and
speed()
positive), shouldn't
if (gearState() == -1){
position.X += (Int32)(speed() * Math.Sin(theta * Math.PI / 180));
position.Y <big>+=</big> (Int32)(speed() * Math.Cos(theta * Math.PI / 180));
}
do the trick?
:)