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.
当使用两参数说语句来显示对话时,第一个参数总是Character对象的一个变量。 这些对象负责在屏幕上显示对话。
声明角色是以绑定变量到Character对象的方式进行的。 这种声明必须在初始块中进行,以确保这种绑定不会被游戏的存储所影响。 也许最简单的定义就是这样:
init:
$ e = Character("Eileen")
这样就创建了一个新的角色对象(character object),并将其与变量e绑定起来。 这时使用说语句:
e "Hello, World!"
这样,在Hello, World!这句对话的前面就会加一个Eileen的标签,表明是谁在说话。 通常还会有人需要自定义标签的颜色。 给Character对象提供一个color关键语参数就能实现:
init:
$ e = Character("Eileen", color=(200, 255, 200, 255))
Color参数的作用是设置标签的颜色属性。 颜色属性是一个RGBA元组(tuple),由四个数组成,用小括号括起来,数字之间以逗号分隔,每个数的范围是0~255。(注:RGBA中的A代表Alpha值。)
创建一个角色对象。 这个对象将作为两参数说语句(two-argument say statement)的 第一个参数。 当这样使用时,它会在对话框上显示说话角色的姓名。 This behavior is customized by passing parameters to this function.
name是说话人的姓名。 可以字串,这样将作为说话人的姓名使用。也可以为空,这样就不会显示姓名标签。 如果该值是一个空格的话,姓名标签将成一空行。该值是Character函数唯一一个必需的参数。
Keyword Arguments. 除了name之外,Character
还有其它的keyword参数。
如果dynamic为True,name将被解析成含有python表达式的字串,用于生成角色的姓名。
image如果为True,name将被解析成图像。 图像将替换标签加入对话框。
condition如果有提供,这应是包含Python表达式的字串。 只要角色对象一说台词,表达式就会取值。 如果取值为False,台词将不会出现。
interact如果为True(缺省为True),当台词出现在将发生互动。 如果为False,互动将不会发生。这时如果你需要互动,则需调用ui.interact(或用其它方式)。
with_none如果为True,将在每次互动之后运行一个 "with None"语句。 如果为None(缺省方式),将检查config.implicit_with_none以决定是否要运行"with None"。
前缀和后缀(Prefixes and Suffixes.) 接下来的关键词参数可以被用作每一个角色对象的前缀和后缀。 比如说,可以用它们给每句台词自动加上引号,这样你就不用每句都要自己加引号。
who_prefix – 作用是在角色姓名之前加上文本。
who_suffix – 作用是在角色姓名之后加上文本。
what_prefix – 作用是在台词之前加上文本。
what_suffix – 作用是在台词之后加上文本。
Click-to-continue. 这个关键词参数的作用是控制点击继续提示符(click-to-continue indicator):
ctc – 如果有提供,该参数将用一个显示体作为点击继续提示符。 如果没有提供或为None,将不会显示点击继续提示符。
ctc_position如果为"nestled",点击继续提示符将固定在台词的末尾。 如果为"fixed",点击继续提示符将直接显示在屏幕上,这时你可以设定它的各种位置属性。
Functions. 下面的关键词参数可以让你让大量的自定义角色对象的行为:
show_function – 该函数作用是逐步显示对话。 (对话也可以用pause文本标签来暂停。) 它应该和renpy.show_display_say具有相同的签名(signature)。
predict_function – 作用是预读该对话的图像。 它应含有renpy.predict_display_say的签名。
callback – 可以在显示对话的过程中的不同点被调用。 调用callback可以带两个参数。一个是指定事件发生位置的参数;另一个是interact参数,指明显示是否需要互动。 在以后的扩展中,额外的关键词参数和未知事伯将被忽略。 能够调用callback的事件如下:
注意:当互动为False时,结束后会出现slow_done。
Default Show Function下面是由缺省的 show_function所处理的关键词参数。
show_two_window – 作用是将角色姓名和对话分成两个窗口显示。
show_side_image – 指定一个和对话框同时出现的显示体。 可以用位置属性来设置该显体出现的位置。 同时,对话窗口的设置也要注意给该显示体留出一定的空间。
show_two_window_vbox_properties - If supplied, a dictionary containing properties that are added to the vbox containing both windows, when show_two_window is true.
show_who_window_properties - If supplied, a dictionary containing properties that are added to the window containing the name of who is speaking, when show_two_window is true.
show_say_vbox_properties - If supplied, a dictionary containing properties that are added to the vbox inside the main window.
Styles. 下面的关键词参数控制部分的对话框的样式:
who_style – 缺省为'say_label',标签的样式。
what_style – 缺省为'say_dialogue',对话文本的样式。
window_style – 缺省为'say_window',对话框的样式。
Additional Keyword Arguments. 额外的关键词参数将被解析成下列形式:
这也是一个DynamicCharacter函数: 等价于用同样的参数调用Character对象,同时将动态(dynamic)参数设为True。
Character对象可以像函数一样直接调用。 它们带有一个位置参量及一段对台词。 它们也能对一个关键词参量interact,用以决定是否要执行一个互动过程。 这种用法从程序学的角度来说可以替代say语句。 例如这条say语句:
e "Hello, World!"
等价于:
$ e("Hello, World!")