RenPy中文空间

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 39|回复: 0

条件语句(新)

 关闭 [复制链接]
发表于 2018-4-20 14:13:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 BuErShen 于 2018-4-20 14:11 编辑

条件语句(翻译:被诅咒的章鱼)

Ren’Py中包含几种语句可以基于某些表达式值改变主控流程。(多提一句,jumpcallreturn 语句修改主控流程不需要前置条件。)

注意之前几页讨论过的,可以使用在Ren’Py脚本中的各类语句。Python的while、if、and语句可以内嵌在Ren’Py游戏中,但不能内嵌在Ren’Py脚本语句之中。

if语句
当if后的表达式为True时,if语句会执行后面的一个语句块(block)。if语句包含1个 if 分句,0个或多个 elif 分句,可能有1个 else 分句。

每个分句应该保持在一个逻辑行内,下面跟一个语句块(block)。 ifelif 关键词后面跟一个表达式。每个分句结尾都是英文冒号( : )。

举例如下:
[RenPy] 纯文本查看 复制代码
if flag:
    e "You're set the flag!"

[RenPy] 纯文本查看 复制代码
if points >= 10:
    jump best_ending
elif points >= 5:
    jump good_ending
elif points >= 1:
    jump bad_ending
else:
    jump worst_ending

if语句里的所有表达式按代码先后顺序进行换算。一旦某个表达式结果为True,其对应的语句块(block)会被立即执行,完成后主控流程将跳出if语句,开始执行if语句后面的内容。

如果if语句中所有表达式结果均为False, else 分句后的语句块会被执行,前提是存在一个 else 分句。

while语句
当while语句中的表达式结果为True时,while分句下面的语句块会执行。
举例:
[RenPy] 纯文本查看 复制代码
$ count = 10

while count > 0:

    "T-minus [count]."

    $ count -= 1

"Liftoff!"

[RenPy] 纯文本查看 复制代码
while True:

    "This is the song that never terminates."
    "It goes on and on, my compatriots."

当主控流程遇到while语句时,while后的表达式会被计算一次,另外每次while下的语句块(block)执行结束后又会回到while表达式。除非while中的表达式结果为False,不然后面的语句块会反复不断运行。

Ren’Py没有continue、break和for循环语句。使用jump语句分别跳转至while循环之前和之后的脚本标签(label),可以替代continue和break语句的功能。在上面的第一个while循环样例中,演示了如果使用while循环代替for循环语句。

pass语句
当我们需要在脚本中根据语法要求必须出现一个语句块(block),而又没有实际内容可以写时,可以使用pass语句。pass语句不做任何事。
举例:
[RenPy] 纯文本查看 复制代码
if points >= 10:
    "You're doing great!"
elif points >= 1:
    pass
else:
    "Things aren't looking so good."

[RenPy] 纯文本查看 复制代码
# event.step()函数可能会返回True,但依然有一些事件(event)需要执行。

while event.step():
    pass

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号 | 苏公网安备 32092302000068号 )

GMT+8, 2018-8-17 15:15 , Processed in 0.025625 second(s), 21 queries , File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表