我试图创建一个插入名称,但我不断收到“‘打破’外部循环”
label start:
scene black
python:
while True:
name = renpy.input("{b}Insert your name{b}")
if name.strip() == "":
me = Character("Levi", color="#00a2d3", who_outlines=[(3, "#afecff", 1, 1)],who_xpos= 600, who_ypos= 20)
break
#narrator(_("Please insert a name"))
elif len(name.strip()) > 20:
narrator(_("This name is too long..."))
else:
me = Character(name.strip(), color="#00a2d3", who_outlines=[(3, "#afecff", 1, 1)],who_xpos= 600, who_ypos= 20)
break
我尝试了我所知道的一切,我得到了相同的结果,我可以得到帮助吗?
这个错误发生的原因是,你的
if
语句在你的
while
循环的
外面
。这意味着
break
语句并不在循环的范围内,因此它无法“打破”循环。
以下是如何修复代码的方法:
label start:
scene black
python:
while True:
name = renpy.input("{b}请输入你的名字{b}")
if name.strip() == "":
me = Character("Levi", color="#00a2d3", who_outlines=[(3, "#afecff", 1, 1)],who_xpos= 600, who_ypos= 20)
break
#narrator(_("请输入名字"))
elif len(name.strip()) > 20:
narrator(_("这个名字太长了..."))
else:
me = Character(name.strip(), color="#00a2d3", who_outlines=[(3, "#afecff", 1, 1)],who_xpos= 600, who_ypos= 20)
break
通过将
if
和
elif
语句缩进到
while
循环中,
break
语句现在位于循环的范围内,并且可以按预期工作。
此外,你有一个冗余的
break
语句在你注释掉的
narrator
行之后。你可以删除它,因为如果名字为空,循环将已经通过第一个
break
语句退出。