调用方法本身不好
本文关键字:方法 调用 | 更新日期: 2023-09-27 18:34:09
我一直在编写一个文字冒险游戏。在游戏开始时,调用 Menu(字符串选择,bool takenDump)。还有其他几种方法具有用户可以遇到的不同场景,例如口袋妖怪遭遇等。如果用户死亡,那么他们会在 Menu() 重新启动,这意味着它会从自身内部再次调用。有什么办法可以避免这种情况吗? program
只要有退出循环的条件,就没有问题。如果没有,你基本上有一个无限循环(直到发生StackoverflowException)。
从纯技术角度来看,只要在堆栈溢出异常发生之前中断循环就没有问题。
不,从自身调用方法是完全可以的 - 名称是"递归"/"递归函数"。
在您的特定情况下,这绝对没有必要(并且可能是错误的)。顶级游戏代码通常看起来像无限循环而不是递归:
while (continuePlaying)
{
ResetLevels_Lives_AndEverything();
while(notDead)
{
handleInput()
draw()
notDead = ChechStillAlive();
}
continuePlaying = CheckContinuePlaying();
}
使用递归时应注意的一件事是堆栈溢出。这似乎不是您要执行的操作的问题,但是如果您的方法多次调用自身,并且每个调用都再次调用它多次,则会发生(除非您设置合理的深度限制)。想想分形、阶乘、斐波那契数列。