RenPy中文空间

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 108|回复: 0

定制文本标签(新)

 关闭 [复制链接]
发表于 2018-5-21 08:11:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
定制文本标签(翻译:被诅咒的章鱼)

Ren’Py支持定义你自己的文本标签(tag)。文本标签系统可以操作文本和定义的标签,包括添加和移除文本或其他文本标签。

config.custom_text_tags 字典中,通过声明一个文本标签函数的入口(entry),可以创建定制文本标签。

define config.custom_text_tags
    将文本标签名映射到文本标签函数。

一个文本标签函数有3个入参:标签(tag)自身,标签使用的参数,以及一个内容元组的列表。例如:下面这段文本:
  1. "{big=2}Hello, {b}World{/b}{/big}"
复制代码

标签(tag)是“big”,标签使用的参数是字符串“2”,内容元组的列表就会是:

  1. [
  2.     (renpy.TEXT_TEXT, "Hello, "),
  3.     (renpy.TEXT_TAG, "b"),
  4.     (renpy.TEXT_TEXT, "World"),
  5.     (renpy.TEXT_TAG, "/b"),
  6. ]
复制代码

文本标签函数会替换内容中的文本标签,并返回一个新的内容元组列表。

内容元组由两部分组成。第一部分是下列面出的常量之一。第二部分根据第一部分的内容发生变化,下面会详细说明。

renpy.TEXT_TEXT
    第二部分是向用户显示的文本。

renpy.TEXT_TAG
    第二部分是某个文本标签的内容,不带闭合花括号。

renpy.TEXT_DISPLAYABLE
    第二部分是一个嵌入文本中的可视组件。

renpy.TEXT_PARAGRAPH

    这表示两段文本之间的断行。第二部分未定义(但必须存在)。

附加说明
对话文本标签{p}、{w}、{nw}和{fast}在定制文本标签之前优先处理,所以不应该被包含在一个定制文本标签里面,也不应该与定制文本标签互相穿透。

样例
样例中的big文本标签使用效果类似于{size}文本标签,不过会对入参使用相乘(multiply)。
[RenPy] 纯文本查看 复制代码
init python:

    def big_tag(tag, argument, contents):

        size = int(argument) * 20

        return [
                (renpy.TEXT_TAG, u"size={}".format(size)),
            ] + contents + [
                (renpy.TEXT_TAG, u"/size"),
            ]

    config.custom_text_tags["big"] = big_tag


"This is {big=3}BIG!{/big}"

样例rot13文本标签将rot13变换(transform)应用于文本。注意,rot26——应用两次rot13——就是普通的文本。
[RenPy] 纯文本查看 复制代码
init python:

    def rot13_tag(tag, argument, contents):
        rv = [ ]

        for kind, text in contents:

            if kind == renpy.TEXT_TEXT:
                text = text.encode("rot13")

            rv.append((kind, text))

        return rv

    config.custom_text_tags["rot13"] = rot13_tag

"Rot0. {rot13}Rot13. {rot13}Rot26. {/rot13}Rot13. {/rot13}Rot0."

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

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号 | 苏公网安备 32092302000068号 )

GMT+8, 2018-12-13 03:29 , Processed in 0.312707 second(s), 21 queries , File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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