public void KeyUp(Key key) { if (key == Key.Space) { SpaceCraft.SetThrottle(0); SpaceCraft.Stage(); } if (key == Key.X) { SpaceCraft.SetThrottle(0); } if (key == Key.Z) { SpaceCraft.SetThrottle(100); } if (key == Key.Q && !IsRetrograde) { IsPrograde = !IsPrograde; } if (key == Key.W && !IsPrograde) { IsRetrograde = !IsRetrograde; } }
public override void Finalize(ISpaceCraft spaceCraft) { spaceCraft.SetThrottle(0); foreach (IEngine engine in spaceCraft.Engines) { engine.Shutdown(); } }
public override void Update(double elapsedTime, ISpaceCraft spaceCraft) { double timeRatio = elapsedTime - StartTime; spaceCraft.SetThrottle(_throttle * timeRatio); }
public override void Finalize(ISpaceCraft spaceCraft) { spaceCraft.SetThrottle(_throttle); }
public override void Update(double elapsedTime, ISpaceCraft spaceCraft) { double shutdownRatio = (elapsedTime - StartTime) * 2; spaceCraft.SetThrottle(_currentThrottle * (1 - shutdownRatio), _engineIds); }
// Interpolate between current and target throttle over the duration public override void Update(double elapsedTime, ISpaceCraft spaceCraft) { double ratio = (elapsedTime - StartTime) / Duration; spaceCraft.SetThrottle(_currentThrottle * (1 - ratio) + _targetThrottle * ratio); }
public override void Update(double elapsedTime, ISpaceCraft spaceCraft) { double shutdownRatio = (elapsedTime - StartTime) * 2; spaceCraft.SetThrottle(_currentThrottle * (1-shutdownRatio)); }