我一直在看renpy关于如何做出选择的教程,大多数情况下,除了一件小事之外,我已经弄明白了它。
如何正确使用elif语句?我查找了一些基本的python elif语句,甚至是一个实际的站点,了解如何在renpy中使用它,但无法让它正常工作。
(我附上了我的代码的截图和我的错误,任何帮助都是非常感谢的)
下面是我的代码片段:
define e = Character("???")
$ mage = False
$ warrior = False
$ archer = False
# The game starts here.
label start:
# Show a background.
scene bg black
# This shows a character sprite.
show weird orb
# These display lines of dialogue.
e "Welcome human, what is your name?"
python:
name = renpy.input(_("What's your name?"))
name = name.strip() or __("John")
define m = Character("[name]")
e "Hmm, [name] is it?"
e "That's a wonderful name!"
m "Where am I?"
e "You'll know in good time, my child."
e "For now, tell me a bit about yourself"
menu:
e "Which of these do you prefer?"
"Magic":
jump magic
"Brute Force":
jump force
"Archery":
jump archery
label magic:
e "You chose magic."
$ mage = True
jump enter
label force:
e "You chose brute force."
$ warrior = True
jump enter
label archery:
e "You chose archery."
$ archer = True
jump enter
label enter:
if mage:
m "I'm a mage."
elif warrior:
m "I'm a warrior."
else:
m "I'm an archer"
return以下是错误的副本:
I'm sorry, but an uncaught exception occurred.
While running game code:
File "game/script.rpy", line 66, in script
if mage:
File "game/script.rpy", line 66, in <module>
if mage:
NameError: name 'mage' is not defined
-- Full Traceback ------------------------------------------------------------
Full traceback:
File "game/script.rpy", line 66, in script
if mage:
File "C:\Users\ArceusPower101\Downloads\renpy-7.0.0-sdk\renpy\ast.py", line 1729, in execute
if renpy.python.py_eval(condition):
File "C:\Users\ArceusPower101\Downloads\renpy-7.0.0-sdk\renpy\python.py", line 1943, in py_eval
return py_eval_bytecode(code, globals, locals)
File "C:\Users\ArceusPower101\Downloads\renpy-7.0.0-sdk\renpy\python.py", line 1936, in py_eval_bytecode
return eval(bytecode, globals, locals)
File "game/script.rpy", line 66, in <module>
if mage:
NameError: name 'mage' is not defined
Windows-8-6.2.9200
Ren'Py 7.0.0.196
Test 1.0
Thu Aug 23 02:06:20 2018

发布于 2018-08-23 15:31:16
您的代码给了您一个异常,因为这三行代码从未运行过:
$ mage = False
$ warrior = False
$ archer = False它们不会运行,因为它们出现在start:标签之上,这是代码开始运行的地方。
有几种方法可以解决这个问题。一种方法是简单地重新排列代码,使start标签显示在这些行的上方。另一种选择是对每个赋值使用default语句:
default mage = False
default warrior = False
default archer = Falsedefault语句将在游戏开始和游戏加载时运行一次,但前提是变量尚未定义。
https://stackoverflow.com/questions/51979551
复制相似问题