0

我一直在编写文字冒险游戏。当程序运行时,该Boot()方法被调用,读取 %APPDATA%.ilan\texert 用于设置文件(同时只有 username.txt)。之后Boot(),它转到MainMenu(),用户可以选择播放、转到选项或退出。当用户进入选项菜单并返回,然后尝试玩游戏或返回选项菜单时,游戏退出,这是不应该发生的。Source
Boot() = Line 455
MainMenu()= Line 579
Main()= Line 504
我相信这是因为int在方法本身中声明了,并且因为该方法被多次调用,所以int变量保留其先前的值。有没有什么办法解决这一问题?

4

1 回答 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 回答