我在XNA中运行游戏。 为了创建菜单和对话框,我正在使用Windows窗体。 然而,我的主要问题是我的'Game Over'对话框。
当您死亡时,会显示一条消息,询问您是否要再试一次。当你这样做 - 它打开另一个xna实例(所以你有两个运行)。
当您选择“再试一次”时,我希望第一个关闭并打开第二个。
XNA Game1.cs
GameOver gameover = new GameOver(level, levelManager, kills);
gameover.ShowDialog();
this.Exit();
'GameOver'是显示游戏统计数据的Windows窗体的名称。 (这需要用户所在的级别并在该级别启动游戏)
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();
}
非常感谢任何帮助。
答案 0 :(得分:1)
我将总结一下: 您需要编写一个重置方法来重置游戏窗口。您可以通过获取承包商中的所有代码并将它们放在另一个方法中并在构造函数和重置方法中调用该方法来实现。确保你不要在重置时留下任何东西。任何需要初始化的成员或连接。
您也可以打开一个新窗口并关闭当前窗口,但这不是正确的做事方式