Ich entwickle einen Einzelspieler-RPG-Plattformer in XNA 4.0. Ich möchte eine Fähigkeit hinzufügen, die die Zeit "stoppt" oder verlangsamt und nur den Spielercharakter mit der ursprünglichen Geschwindigkeit bewegen lässt (ähnlich dem Zeitstopp-Zauber aus der Baldur's Gate-Serie). Ich suche keine genaue Implementierung, sondern einige allgemeine Ideen und Designmuster.
EDIT: Vielen Dank für den tollen Input. Ich habe die folgende Lösung gefunden
public void Update(GameTime gameTime)
{
GameTime newGameTime = new GameTime(gameTime.TotalGameTime,
new TimeSpan(gameTime.ElapsedGameTime.Ticks / DESIRED_TIME_MODIFIER));
gameTime = newGameTime;
oder so ähnlich. Auf diese Weise kann ich eine andere Zeit für die Player-Komponente und eine andere für den Rest einstellen. Es ist sicherlich nicht universell genug, um für ein Spiel zu arbeiten, bei dem eine solche Verzerrungszeit ein zentrales Element wäre, aber ich hoffe, dass es für diesen Fall funktionieren sollte. Ich mag die Tatsache nicht, dass es die Haupt-Update-Schleife verschmutzt, aber es ist sicherlich der einfachste Weg, es zu implementieren. Ich denke, das ist im Wesentlichen das gleiche wie von Tesselode vorgeschlagen, also werde ich ihm das grüne Häkchen geben :)