Ich habe die Pausenfunktion implementiert und sie funktioniert korrekt, da sie den Player-Bildschirm dimmt und das Gameplay nicht mehr aktualisiert.
Das Problem ist, dass GameTime weiter zunimmt, während es angehalten wird. Daher wird meine Methode, die gameTime im Vergleich zu previousSpawnTime überprüft, bevor ein anderer Feind erzeugt wird, durcheinander gebracht. Wenn das Spiel zu lange angehalten wird, fällt auf, dass der nächste Feind viel zu früh zieht.
Hier ist mein Code für das feindliche Update.
private void UpdateEnemies(GameTime gameTime)
{
// Spawn a new enemy every 1.5 seconds
if (gameTime.TotalGameTime - previousSpawnTime > enemySpawnTime)
{
previousSpawnTime = gameTime.TotalGameTime;
// Add an Enemy
AddEnemy();
}
...
Ich habe auch andere Methoden, die von gameTime abhängen. Ich habe versucht, die gesamte Pausenzeit zu ermitteln und von der gesamten Spielzeit zu subtrahieren, aber ich kann nicht scheinen, dass sie richtig funktioniert, wenn ich dies auf diese Weise lösen sollte.
Wenn Sie einen anderen Code benötigen, lassen Sie es mich wissen. Vielen Dank.