文本

您所在的位置:网站首页 flash逐字渐变出现 文本

文本

2024-07-14 14:13| 来源: 网络整理| 查看: 265

文本 link

Ren’Py内涵多种方式用于显示文本。 say 和 menu 语句就会用到文本显示。 用户接口通常都包含文本,显示时使用 text, textbutton, 和 label screen语言语句。这些screen语句加上其他的函数,可以创建 Text() 文本组件,并在界面上展示出来。

文本组件用于管理显示给用户的文本内容。文本组件按以下顺序执行行为:

转化文本。

在文本中内插数据

使用样式和文本标签将文本样式化。

给样式化后的文本布局。

将文本内容绘制到界面上。

本节内容讨论在Ren’Py中处理文本显示问题的过程。

转义字符 link

对Ren’Py来说,有3个特殊字符能控制文本显示。创作者需要注意,这3个字符的写法不要让引擎产生曲解。

(反斜杠)

反斜杠用于Ren’Py字符串中的字符转义。一些常见的转义符号如下:

\” (反斜杠双引号)

两端用双引号标识的字符串中含有一个双引号。

\’ (反斜杠单引号)

两端用单引号标识的字符串中含有一个单引号。

\ (双引号空格)

在Ren’Py字符串中含有一个额外的空格。默认情况下,Ren’Py脚本会将一段连续的空白转为一个空格字符。

\n (反斜杠-字符n)

文本含有一个换行符。

\\ (反斜杠-反斜杠)

文本含有一个反斜杠字符。

\% (反斜杠-百分号)

文本中包含一个百分号字符。 也可以写作 %%。 两种写法都会显示为一个百分号。

[ (左方括号)

左方括号用于转义在文本中内插的值。如果要在文本中包含左方括号,需要写两个左方括号 —— [[ 。

{ (左花括号)

左花括号用于转义文本标签(tag)。如果要在文本中包含左花括号,需要写两个左花括号 —— {{ 。

【 (左方头凹形括号)

左方头凹形括号用于引入Ruby/片假名文本。若要在文本中直接显示左方头凹形括号,需要写两个连续的方头凹形括号 【【。

内插数值 link

Ren’Py支持在文本字符串中内插数值。例如,假设用户名字存储在 playername 变量中,我们可以写这样一行对话:

g "欢迎来到猫耳协会, [playername] !"

Ren’Py会按以下顺序搜索变量:

在某个界面中时,搜索界面本地变量。

搜索 interpolate 命名空间的变量。

搜索全局变量。

Ren’Py并不限制只允许内插简单变量值,也支持合法的Python表达式。以下写法也是可以的:

g "我姓 [player.names[0]]。"

显示数值之前可以先进行格式化。下面的例子显示的是一个保留小数点后两位的浮点数:

g "我百分之 [100.0 * points / max_points:.2] 喜欢你!"

Ren’Py字符串的数值内插符合 PEP 3101 的字符串格式规范。 Ren’Py字符串内插使用 [ ,因为 { 被用于文本标签(tag)了。

还有,Ren’Py支持!s、!r、!q和!t等转换标记。!q转换标记表示文本标签(tag)内引号已经正确匹配和使用,显示字符串时不会转义为不希望出现的格式。举例:

g "你别想忽悠我, [playername!q] !"

!t转换标记会转换或计算内插字符串的值:

if points > 5: $ mood = _("高兴") else: $ mood = _("头大") g "见到你我很 [mood!t] 。"

!i 标识会在字符串中执行一次额外的插值:

define earned_points_info = _("[points]{image=points.png} 赢得点数") g "我很高兴看到你 [earned_points_info!ti] "

界面语言中会经常用到,详见 常量文本 。

!u 标识强制将(英文)文本转为大写, !l 标识强制将(英文)文本转为小写。 !c 标识将首字母大写。 这些标识可以联用,比如使用 !cl 可以将首字母大写,后面所有文本强制小写。

有几个点需要注意:

标记的使用顺序不会影响最终结果: !cl 与 !lc 是一样的。

各标记前补充感叹号将被忽略,并且依然遵循上一条规则: !l!c、!c!l 和 !cl 的结果都是一样的。

具体变换遵照以下顺序进行:

r/s (替换字符串)

t (多语言)

i (循环插值)

q (引用)

u (将字母大写)

l (将字母小写)

c (首字母大写)

样式化和文本标签(tag) link

在Ren’Py中,文本有两种方式获取样式(style)信息。第一种是,根据整个文本段落(block)应用的样式获取。请详见 样式系统 及 文本样式特性 部分的内容。

第二种是,通过使用文本标签(tag)。文本标签(tag)可用于一个文本段落(block)中一部分的样式化,也可以用于程序中所有文本段落中一部分的样式化。如果你发现自己在文本的每一行里都应用了同样的文本标签,可以考虑使用样式代替这种做法。

总共有两种文本标签。某些文本标签是自闭合的,而有些文本标签需要成对的闭合标签。当多个成对的闭合标签出现时,闭合顺序必须是后出现的标签先闭合——Ren’Py会拒绝不正确匹配。例如:

# 这行是正确的 "Plain {b}Bold {i}Bold-Italic{/i} Bold{/b} Plain" # 这行是不正确的,并会引起报错或不正确的画面表现 "Plain {b}Bold {i}Bold-Italic{/b} Italic{/i} Plain"

某些文本标签可以带一个入参。带入参的文本标签后面会带一个等号(=),后面跟参数值。入参不能含有右花括号(})。入参的含义根据不同的文本标签而不同。

通用文本标签 link

通用文本标签可以应用于如下文本:

a link

锚点标签在其自身和自己的闭合标签内,创建了一个超链接。超链接的行为表现由 hyperlink_functions 样式特性控制。 默认的处理包含以下行为:

当入参以 jump: 开头,入参的其余部分是要跳转的脚本标签(label)名。

当入参以 call: 开头,入参的其余部分是要调用的脚本标签(label)名。通常来说,call执行完后会回到当前的Ren’Py语句。

当入参以 call_in_new_context: 开头,入参的其余部分是某个新的上下文(使用 renpy.call_in_new_context() 函数)中需要调用的脚本标签名。

当入参以 show: 开头,入参的其余部分是待显示的界面。

当入参以 showmenu: 开头,入参的其余部分是待显示的游戏菜单界面。

除了以上情况,入参是一个URL,可以使用系统web浏览器打开。

如果在入参中没有显式的协议头, config.hyperlink_protocol 中配置的值会自动添加到入参头部。如果 config.hyperlink_protocol 已经被配置为“jump”,{a=label}跟{a=jump:label}就是等价的。创作者可以使用 config.hyperlink_handlers 配置一个新的协议名称。

label test: e "你可以访问 {a=https://renpy.org}Ren'Py's 主页{/a}。" e "或者 {a=jump:more_text}这里来得到更多信息{/a}." return label more_text: e "在阿肯萨斯的温泉,有一座可以作为拍照景点的阿尔·卡彭雕像。" e "这就是更多信息,但不是你想要的那种对不?" return alpha link

alpha文本标签(tag)指定一个透明度,渲染范围为自身及其闭合标签内的文本。透明度是一个介于0.0和1.0之间的数值,分别对应完全透明和完全不透明。若这个数值前缀带有+或者-,则表示是在原有透明度基础上做相应增减。若这个数值前缀带有 *, 该数值与原值相乘的积作为透明度。

"{alpha=0.1}这字完全不能看!{/alpha}" "{alpha=-0.1}现在字的透明度少了10\%{/alpha}" "{alpha=*0.5}字的透明度是默认的50\%。{/alpha}" alt link

alt文本标签(tag)将阻止文本内容被渲染,不过TTS系统依然有效:

g "Good to see you! {image=heart.png}{alt}heart{/alt}"

还可以查看 alt 角色相关内容.

art link

art文本标签(tag)会把闭合标签内的文本作为ruby文本的顶部文字显示。 详见 Ruby文本 。

b link

粗体标签,将自身及其毕业标签内的文本渲染为粗体。

"一个 {b}粗体测试{/b}。" color link

颜色文本标签将自身及其闭合标签内的文本渲染为特定的颜色值。颜色值使用#rgb、#rgba、#rrggbb或#rrggbbaa格式。

"{color=#f00}红色{/color}, {color=#00ff00}绿色{/color}, {color=#0000ffff}蓝色{/color}" cps link

“每秒钟字符数”标签设置了文本显示速度,作用范围为标签自身及其闭合标签范围内文本。若入参开头带有一个星号和数字n,表示使用文本n倍速显示。如果没有星号,则数字n表示每秒显示n个字符。

"{cps=20}固定速度{/cps} {cps=*2}两倍速{/cps} font link

字体标签将标签自身及其闭合区间之间的文本渲染为指定的字体。入参即使用的字体文件名。

"尝试使用字体 {font=mikachan.ttf}mikachan font{/font}。" i link

斜体标签将自身及其闭合标签之间的文本渲染为斜体。

"游览 {i}比萨斜塔{/i}。" image link

图片标签是一个自闭合标签,作用是在文本中内插一个图片。内插的图片高度应该和单行文本的高度一致。入参可以是图片文件名,或者使用image语句定义的图像名。

g "见到你真好! {image=heart.png}{alt}heart{/alt}" k link

字偶距标签调整文本字偶距,作用范围为其自身及其闭合标签之间的文本。其使用一个浮点数值作为入参,该值给定了字符之间增加的距离,单位是像素(该值也可以是负值,表示字符之间缩小的距离)。

"{k=-.5}Negative{/k} Normal {k=.5}Positive{/k}" noalt link

noalt标签将防止文本被TTS系统使用。经常与 alt 标签一起使用,提供可见选项。

g "见到你真好! {noalt}


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3