0

我正在玩家和龙之间进行简单的基于文本的战斗。我使用Menus 让玩家从一组选项中进行选择。然后Menu显然转到Lbl分配给所选选项。在游戏的 while 循环中,我可以Lbl使用End命令返回循环的开头来结束 s,但是当玩家选择难度时,没有循环。如何防止在此代码中执行所有后续 Lbls:

:Menu("DIFFICULTY?", "EASY", 00, "MEDIUM", 01, "HARD", 02)
:Lbl 00
:75->D
://some end statement
:Lbl 01
:150->D
://some end statement
:Lbl 02
:300->D
://some end statement

因为目前,无论选择何种选项,执行所有标签都会导致龙拥有 300 点生命值。(我不想使用标量或其他技巧来解决问题,我想知道如何在一般情况下模拟我所描述的内容,以便可以在未来的程序中使用该技术)。

4

1 回答 1

2

您可以在最后添加另一个标签,并在设置好龙的健康后转到它。

像这样:

:Menu("DIFFICULTY?", "EASY", 00, "MEDIUM", 01, "HARD", 02)
:Lbl 00
:75->D
:GoTo 03
:Lbl 01
:150->D
:GoTo 03
:Lbl 02
:300->D
://you don't need a GoTo here since there are no more labels and Lbl 03 is the next line.
:Lbl 03
://The rest of your code...

这将退出您正在使用的开关式设置并继续执行代码。

就个人而言,我会使用if then, elseIf then, else,endIf块来实现这个目标。

于 2014-09-28T20:36:26.037 回答