This page is out of date

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中显文本(基本编)

就AVG来说,最重要的组成部分莫过于文本。情节的演绎,角色的丰满,都需要文字来渲染。同时,文本显示方式的选择会对作品或多或少地造成一定影响。本教程将讲述几种常用的文本表现方式。


1。叙述式。 这是最简单的一种。通常用于描述性的语句或用来表现主视角的心理活动。 t1.jpg 用法:只要给文本加上双引号即可。

 "这是最简单的文本显示。"

2。角色式。 这是比较常用的一种,即在文本前会显示角色的姓名标签。通常用于对话。 t2.jpg 用法:
1> 先在初始块中定义一个角色对象。

init:
    $ js = Character(u'角色', color='#B06500')

如上所示,我们定义了js这个角色对象。姓名为“角色”,颜色十六进制代码为B06500,要在前面加个#号。(注:因为是中文,所以要加上前缀u,表明是Unicode)
2> 然后在脚本中这样使用:

js "这是带有角色标签的文本。"

如上,只要先输入js,然后空一格,再输入带双引号的文本即可。很方便吧。

3。双窗口式。这也是一种比较常见且流行的款式。 t3.jpg 用法:
1> 先在初始块中定义一个双窗口角色对象。

init:
    $ js2 = Character(u'双窗口角色', color='#B06500', show_two_window=True)

如上,和角色式差不多,只是后面带了一个show_two_window的参数,且取值为True。 2> 在脚本中的用法和角色式一样:

js2 "这就是双窗口角色标签。"

4。头像式。这算一种比较有效率的方式,可以减少立绘的数量。 t4.jpg 用法:
1> 老规矩,先在初始块中定义一个头像角色对象。

init:
    $ js_side1 = Character(u'头像角色一',
    color = 'B06500',
    window_left_margin = 150,
    show_side_image = Image('face.jpg', xalign = 0.0, ypos = 455))

注意一下这里的语句写法。当语句比较长,带的参数比较多时,基于易读的原则,劳驾多用几个物理行来分开,不要写成串串烧的德性。还有,菜鸟要注意一下括号的配对性。

看起来有点复杂,对吧。其实也还是简单。姓名和颜色与前面一样,无非是多了几个参数而已,下面逐一讲解:
window_left_margin = 150
如同字面意思,表明对话框距窗口左边缘为150像素,留出头像的空间。
show_side_image = Image('face.jpg', xalign = 0.0, ypos = 455)
show_side_image同字面意思。
Image是个调用的图像的语句。后面跟了3个参数。
"face.jpg"是图像的文件名,因为是放在game目录下,所以直接用文件名即可,不需指明路径。
xalign = 0.0 指定图像在x轴上的对齐基点。0.0即以左边为基点,0.5以中间,1.0以右边。当然,如果你愿意,你可以用任何小数。。。
ypos = 455 指定图像在Y方向上的位置。ypos = 455表明从窗口左上角(0,0)开始算起,向下数第455个像素。然后以图像的对齐基点(见上)从该点为开始描绘图像。
2> 在脚本中的用法还是一样简单:

js_side1 "这是头像模式。"

当然,头像也可以放在右边,对话框也可以放在屏幕上方,颜色也可以更改,只需要改变几个参数即可。这样是不是有点机器人大战的感觉?你也可以用这种方法来表明不同立场的人物。(代码参看附带的范例。) t5.jpg

5。小说式。这应该算是正统的电子小说吧。目前貌似流行这种画中画的文本框。 t6.jpg 用法:
1> 先定义NVL角色。

init:
    $ js_nvl = NVLCharacter(u'小说角色', color="#B06500")

然后设置NVL样式。

init:
    $ style.nvl_label.minwidth = 150
    $ style.nvl_label.text_align = 1.0    
    $ style.nvl_window.background = "#0008"
    $ style.nvl_window.yfill = True
    $ style.nvl_window.xfill = True
    $ style.nvl_window.xmargin = 20
    $ style.nvl_window.ymargin = 20
    $ style.nvl_window.xpadding = 40
    $ style.nvl_window.ypadding = 40
    $ style.nvl_vbox.box_spacing = 10

唔,同字面意思,不赘述。如有不明,参见附带范例的注释。
2> 在脚本中的用法还是一样简单。

js_nvl "这就是小说模式。"
js_nvl "这是一句填充用的废话。这也是一句填充用的废话。这又是一句填充用的废话。这还是一句填充用的废话。"

3> 最后,别忘了用$ nvl_clear()清屏,也就是翻页。

6。本教程范例下载。 example_text.rar
再哆嗦一句,使用方法:
解压到基本目录,运行renpy.exe==>Select Project==>text
然后Launch
注意:目录结构不能超过两层,否则前端会找不到文件。

7。Okay。本次教程结束。应该比较详细了。。。囧TZ