2

我有一个在 XNA 中运行的游戏。为了创建菜单和对话框,我使用 Windows 窗体。但是,我的主要问题是我的“游戏结束”对话框。

当你死后,会出现一条消息,询问你是否想再试一次。当你这样做时 - 它会打开另一个 xna 实例(所以你有两个正在运行)。

当您选择“再试一次”时,我希望第一个关闭并打开第二个。

XNA Game1.cs

GameOver gameover = new GameOver(level, levelManager, kills);
                gameover.ShowDialog();
                this.Exit();

'GameOver' 是显示游戏结束统计信息的窗口窗体的名称。(这需要用户所在的级别并在该级别开始游戏)

GameOver.cs(Windows 窗体)

    private void button1_Click(object sender, EventArgs e)
{
    Visible = false;
    Thread thread = new Thread(() =>
    {
        Game1 game = new Game1(level);
        game.Run();
    });
    thread.Start();
    thread.Join();
}

任何帮助深表感谢。

4

1 回答 1

1

我总结一下:你需要编写一个重置游戏窗口的重置方法。您可以通过获取承包商中的所有代码并将它们放在另一个方法中并在构造函数和重置方法中调用该方法来做到这一点。确保您不会在重置后留下任何东西。任何需要初始化的成员或连接。

您也可以打开一个新窗口并关闭当前窗口,但这不是正确的做事方式

于 2013-07-10T13:57:12.413 回答