//end of gearing up or downs //update method public virtual void update(float motorRpmPercent, GameTime gameTime) { currentState.update(Keyboard.GetState(), gameTime); if (gearChange != null) { gearChange.TimeTillEngaged -= (float)gameTime.ElapsedGameTime.TotalSeconds; if (gearChange.TimeTillEngaged <= 0) { if (gearChange.Change > 0) { if (currentgear < gearRatios.Count - 1) { currentgear++; } } else if (currentgear > -1) { currentgear--; } clutch = 1.0f; gearChange = null; } else { clutch = (gearChangetime - gearChange.TimeTillEngaged) / gearChangetime; } } }
public void gearDown() { if (gearChange == null) { gearChange = new GearboxGearChange(); gearChange.Change = -1; gearChange.TimeTillEngaged = gearChangetime; clutch = 0.0f; } }