You've reached a page on the Ren'Py wiki. Due to massive spam, the wiki hasn't been updated in over 5 years, and much of the information here is very out of date. We've kept it because some of it is of historic interest, but all the information relevant to modern versions of Ren'Py has been moved elsewhere.
Some places to look are:
Please do not create new links to this page.
下面是一个简单但完整的Ren'Py脚本。颜色高亮是为了便于阅读,所以不要把颜色当作是脚本必须的要素。事实上,你可以在编辑器中自定义自己喜欢的高亮颜色。
init:
image bg whitehouse = "whitehouse.jpg"
image eileen happy = "eileen_happy.png"
image eileen upset = "eileen_upset.png"
$ e = Character('Eileen')
label start:
scene bg whitehouse
show eileen happy
e "我正站在白宫前。"
show eileen upset
e "我曾经想去西翼(West Wing)参观一下,
不过你得在里面有熟人才行。"
"因为某些原因,她看起来真的很生气。"
e "我曾打算偷偷溜进去,不过那可能并不是个好主意。"
脚本的最开始是个“初始块”("init block"),用来设置游戏的全局配置,以及用来声明以后会在脚本中使用的资源名称。 首先,定义了三个图像:
image bg whitehouse = "whitehouse.jpg"
image eileen happy = "eileen_happy.png"
image eileen upset = "eileen_upset.png"
这些被定义的东西在Ren'Py的术语中被称作:“显示体”(”Displayables”),这些东西可以在其他的脚本中调用,如在“show”命令里。 名称必须是合法的Python变量名,否则一无是处。记住,名称不能以数字开头。
在初始块的下一行中,声明(declare)了一个变量:
$ e = Character('Eileen')
这一行最前面的这个“$”表明该行实际上是个Python语句。 一开始,你会觉得比较困难去理解在脚本中使用Python语言语句是怎么一回事,以及使用简单的Ren'Py语言语句又是怎样的一回事。不过请放松,在最初阶段,你只需要知道那么一丁点儿Python语句的知识就够了。
在本例中,用语句创建了一个变量,’e’,并为它分派了一个Character函数的结果,同时该函数带了一个参数'Eileen’。 简而言之,我们创建了一个快捷方式,在你后面的脚本写作中,当需要显示Eileen说话时,你就不用每次都要打出全名’Eillen’,用’e’即可。
下面这一行介绍了“标签”(’label’)语句:
label start:
标签提供了一个标识,使其能在Ren'Py的其他脚本中被调用(call)或跳转(jump to)。 在缺省方式下,当你开始新游戏时,会从Ren'Py的主菜单(main menu)跳转到标签'start’。
从’start’标签开始就是你的游戏的正体了,那么现在就来说点什么吧。 首先,是“场景”(’scene’)语句:
scene bg whitehouse
场景语句的作用是简单地将预定义的显示体‘bg whitehouse’添加到屏幕上。
接下来是“显示”(show)语句:
show eileen happy
该显示语句将预定义的’eileen happy’添加到屏幕上,并位于场景的上方。(译注:在最新版的Ren'Py中已支持图层)
e "我正站在白宫前。"
这一行是“说”(say)语句的例子,尽管你会注意到我们并未使用‘say’这个关键词。 因为“说”语句是游戏脚本的绝大组成部分,所有我们使它尽量简化。
这里,语句以一个预定义的Python变量’e’开始,它用来告诉 Ren'Py解释器,下面这段台词要调用Character函数,当然,是预定义的名字'Eileen’。
接下来是另一种显示(show)语句:
show eileen upset
这一行展示了一个有趣的功能,显示语句的复合词组(Multi-Word)功能。 回忆一下初始块的内容,里面有‘eileen happy’和‘eileen upset’的预定义。 当显示语句执行时,它会首先检查在屏幕上显示的图像的定义名的首单词是否和将要显示的图像的定义名的首单词相同。 如果是的话,前一个图像就会消失,被新图像代替。
简单的说,'eileen happy’这个图像消失,而’eileen upset’显示,因为它们的首单词都是'eileen’。
接下来是另一行Eileen的台词:
e "我曾经想去西翼(West Wing)参观一下,
不过你得在里面有熟人才行。"
这一段台词不巧被分成两个物理行,不过显示在屏幕上时会被连接起来。 注意:脚本中的换行在显示时不会被执行。如果你需要换行,你得使用换行符'\n'。
接下来,是另一种“说”语句,这是最简单的形式:
"因为某些原因,她看起来真的很生气。"
最简单的“说”语句就是一个带引号的字符串。 它会在屏幕上显示不带角色名的对话,通常在AVG中用于旁白。
最后,以对话结束:
e "我曾打算偷偷溜进去,不过那可能并不是个好主意。"
当最后一句话出现后,点击鼠标就会回到游戏标题画面。