C#XNA-任何方式“;刷新”;游戏状态

本文关键字:刷新 游戏 状态 任何方 何方 C#XNA- | 更新日期: 2023-09-27 18:26:59

所以我在游戏状态中使用enum。当我处于game playing状态时,我可以暂停并返回到main menu。但如果我点击Play game并再次移动到game playing,一切都和我离开时一样。我正在寻找一种方法来"重新启动/刷新/刷新"game playing状态。所以,如果我回到过去,我将不得不重新开始。

C#XNA-任何方式“;刷新”;游戏状态

您现在有一些代码(假设)可以在程序启动时初始化游戏状态。您需要将该代码考虑在内(如果必要),以便在任何时候都可以调用它来初始化游戏状态。例如,当你开始一个新游戏时,即将你的游戏状态移动到"玩游戏"。

事实上,在大多数初始化代码(即,除了在新游戏中不需要重新初始化的东西之外的所有代码)中,您可能只想运行。启动程序后再运行它是多余的,只会降低启动时间。

我的游戏类有"敌人"、"爆炸"、"子弹"等列表。。。在Gamplay类中,我有Init sub,当状态变为"游戏性"时执行。它清除所有和负载级别。

在伪代码中看起来像这样:

Class GamePlay
    Sub Init
       Enemies.Clear()
       Explosions.Clear()
       Bullets.Clear()
       Paralax.Clear()
       Stars.Clear()
       LoadLevel(lvl)
    End Sub
    Sub LoadLevel(lvl)
       Stars.Geneate(200)
       Paralax.Add(new Paralax(type, position, velocity))
    End Sub
    Sub Update
        if (mainship.fire) bullets.fire()
    End Sub
    Sub Draw
    End Sub
End Class