我一直在编写文字冒险游戏。当程序运行时,该Boot()
方法被调用,读取 %APPDATA%.ilan\texert 用于设置文件(同时只有 username.txt)。之后Boot()
,它转到MainMenu()
,用户可以选择播放、转到选项或退出。当用户进入选项菜单并返回,然后尝试玩游戏或返回选项菜单时,游戏退出,这是不应该发生的。Source
Boot()
= Line 455
MainMenu()
= Line 579
Main()
= Line 504
我相信这是因为int
在方法本身中声明了,并且因为该方法被多次调用,所以int
变量保留其先前的值。有没有什么办法解决这一问题?
问问题
545 次
1 回答
0
在第 610 行,您检索 MainMenu 方法的结果,然后在第 617 行调用您的 OptionMenu 方法,但是一旦 OptionMenu() 方法触发,您无需执行任何其他操作来阻止您的应用程序在控制返回到 Main( ) 方法。即使您在 OptionMenu() 方法中调用 MainMenu(),也不会评估该调用的结果,因此您只需将菜单写入控制台并返回到 Main()。您需要在 Main() 方法中放置一个循环,该循环将重复调用您的 MainMenu() 方法,评估选定的结果,而其他菜单选项(如 OptionMenu())将仅返回此循环,而不是自己调用主菜单。像这样的东西:
string whatToDo = "null";
bool exitApp = false;
while (!exitApp)
{
whatToDo = AdvTime.MainMenu();
if (whatToDo.Contains("play"))
{
Menu("null", false);
}
if (whatToDo.Contains("options"))
{
AdvTime.OptionMenu();
}
if (whatToDo.Contains("exit"))
{
exitApp = true;
}
if (whatToDo.Contains("null"))
{
AdvTime.MMError("OM");
}
}
于 2013-10-06T13:42:46.623 回答