首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Renpy ELIF语句

Renpy ELIF语句
EN

Stack Overflow用户
提问于 2018-08-23 14:28:53
回答 1查看 1.3K关注 0票数 0

我一直在看renpy关于如何做出选择的教程,大多数情况下,除了一件小事之外,我已经弄明白了它。

如何正确使用elif语句?我查找了一些基本的python elif语句,甚至是一个实际的站点,了解如何在renpy中使用它,但无法让它正常工作。

(我附上了我的代码的截图和我的错误,任何帮助都是非常感谢的)

下面是我的代码片段:

代码语言:javascript
复制
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

以下是错误的副本:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-23 15:31:16

您的代码给了您一个异常,因为这三行代码从未运行过:

代码语言:javascript
复制
$ mage = False
$ warrior = False
$ archer = False

它们不会运行,因为它们出现在start:标签之上,这是代码开始运行的地方。

有几种方法可以解决这个问题。一种方法是简单地重新排列代码,使start标签显示在这些行的上方。另一种选择是对每个赋值使用default语句:

代码语言:javascript
复制
default mage = False
default warrior = False 
default archer = False

default语句将在游戏开始和游戏加载时运行一次,但前提是变量尚未定义。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51979551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档