幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6496|回复: 5

[RP] [教程02]在Ren'Py中显文本(基本编)

[复制链接]

67

主题

383

帖子

4489

积分

⑥精研

御姐御用提款机

积分
4489
发表于 2006-11-21 16:35:27 | 显示全部楼层 |阅读模式
就AVG来说,最重要的组成部分莫过于文本。情节的演绎,角色的丰满,都需要文字来渲染。同时,文本显示方式的选择会对作品或多或少地造成一定影响。本教程将讲述几种常用的文本表现方式。

==============================================

1。叙述式。 这是最简单的一种。通常用于描述性的语句或用来表现主视角的心理活动。  

用法:只要给文本加上双引号即可。
"这是最简单的文本显示。"

2。角色式。 这是比较常用的一种,即在文本前会显示角色的姓名标签。通常用于对话。  

用法:
1> 先在初始块中定义一个角色对象。
init:
    $ js = Character(u'角色', color='#B06500')
如上所示,我们定义了js这个角色对象。姓名为“角色”,颜色十六进制代码为B06500,要在加个#号。(注:因为是中文,所以要加上前缀u,表明是Unicode)

2> 然后在脚本中这样使用:
js "这是带有角色标签的文本。"如上,只要先输入js,然后空一格,再输入带双引号的文本即可。很方便吧。

3。双窗口式。这也是一种比较常见且流行的款式。  

用法:
1> 先在初始块中定义一个双窗口角色对象。
init:
    $ js2 = Character(u'双窗口角色', color='#B06500', show_two_window=True)
如上,和角色式差不多,只是后面带了一个show_two_window的参数,且取值为True。

2> 在脚本中的用法和角色式一样:
js2 "这就是双窗口角色标签。"

4。头像式。这算一种比较有效率的方式,可以减少立绘的数量。  

用法:
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 "这是头像模式。"

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


5。小说式。这应该算是正统的电子小说吧。目前貌似流行这种画中画的文本框。  

用法:
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。因文件稍大,请到官网下载本教程所用范例。链接见下。
再哆嗦一句,使用方法:
解压到基本目录,运行renpy.exe==>Select Project==>text
然后Launch
注意:目录结构不能超过两层,否则前端会找不到文件。

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

==============================================
参见:官网教程
其实。。。 YY是种奢侈品。。。
回复

使用道具 举报

122

主题

3954

帖子

24万

积分

超级版主

传说中的Bunny坑神~!

Rank: 8Rank: 8

积分
244543

声命组铜赏

发表于 2006-11-21 16:58:01 | 显示全部楼层
真勤奋~ [s:7]
http://www.nvlmaker.net/
回复 支持 反对

使用道具 举报

18

主题

428

帖子

5260

积分

⑦老手

在美工荒中挣扎的全能

积分
5260
QQ
发表于 2006-11-22 19:45:35 | 显示全部楼层
小复杂(对于Programming的外行)……不过效果还好……

建议使用其他的素材~
回复 支持 反对

使用道具 举报

0

主题

1

帖子

13

积分

②入门

积分
13
发表于 2006-11-28 01:27:12 | 显示全部楼层
请问一下 :
整个画面的坐标是以最左上角为零点?→向为正X ,↓向为正Y?
另外显示图片的坐标是否以该图片的左上角为对齐点?

感谢解答了~ [s:6]
回复 支持 反对

使用道具 举报

67

主题

383

帖子

4489

积分

⑥精研

御姐御用提款机

积分
4489
 楼主| 发表于 2006-11-28 10:06:26 | 显示全部楼层
引用第3楼demen2006-11-28 01:27发表的:
请问一下 :
整个画面的坐标是以最左上角为零点?→向为正X ,↓向为正Y?
另外显示图片的坐标是否以该图片的左上角为对齐点?

感谢解答了~ [s:6]

正解。。。

因为在该例中,头像,也就是图像的x座标为0,也就是缺省值,所以没有在脚本中输入。你可以加入xpos = XXX, 这样图像可以显示在屏幕上任何位置。

同样,在本例中,对图像对齐的y基点为缺省值,也就是0,所有也省略。你也可以加入yalign = 0.0 或 0.5 或 1.0。 比如说,xalign = 0.5, yalign = 0.5,那么图像就以中心为对齐基点。如果xalign = 1.0, yalign = 1.0,则以右下角为对齐基点。

更详细的内容请参见官网reference。。。
该内容目前尚未汉化。。。 [s:5]
其实。。。 YY是种奢侈品。。。
回复 支持 反对

使用道具 举报

18

主题

428

帖子

5260

积分

⑦老手

在美工荒中挣扎的全能

积分
5260
QQ
发表于 2006-11-28 21:02:33 | 显示全部楼层
话说RP的代码是合法的Python源码么?还是专用的脚本格式?
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-3-29 14:14 , Processed in 0.030085 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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