krkr2 中文文档 下载 App

文本显示与对话控制

最基础的对话

在 scenario 文件里,标签之外的内容就是要显示的文本:

[chara storage="chara/hero.tlg" layer=1]

hero:你好,欢迎来到我的世界。

[click]
今天天气真不错。

[click]

引擎会自动逐字显示文本(打字机效果),一整段文字显示完后等待用户点击或按键,然后继续下一段。

说话人名字框

吉里吉里2 默认有一个名字框(叫「namebox」或「messageon」),用来显示当前说话角色的名字。名字和正文的分隔符默认为 :(全角冒号)。

打字速度控制

; 设置全局打字速度(毫秒/字)
[tjs]
KAG.manager.messageSpeed = 50;  // 50ms 每字 = 快
KAG.manager.messageSpeed = 200; // 200ms = 慢

; 或者直接显示全部文字不逐字
[nowait]
这一行会一次性全部显示完,不打字。

KAG 还支持在游戏中通过选项让玩家自己调打字速度,这需要配合设置界面实现。

清空文字框

; 清空当前文字框
[msg clear]

; 清空并显示新内容
[msg clear]
新的文字从这里开始。

多行文本

普通文本可以自然换行:

这是一段较长的对话,
引擎会按窗口宽度自动换行。
段落之间空一行会变成回车换行。

; 也可以手动控制换行
[msg str="这是第一行\n这是第二行"]

文本特效标签

颜色

[msg color="#ff0000"]红色文字[/msg]
[msg color="blue"]蓝色文字[/msg]

大小

[msg size=24]24号字[/msg]
[msg size=small]小字[/msg]
[msg size=large]大字[/msg]

加粗/斜体(有限支持)

吉里吉里2 的文字渲染器比较基础,不像 HTML 那样支持完整的富文本。常见做法是用不同大小和颜色来区分。

逐字显示但中途加速

按 Ctrl + 回车(或游戏中自定义的跳过键)可以让打字效果瞬间完成。

自动前进(无人值守模式)

; 自动播放对话,每段等待 2000ms
[msg auto time=2000]

; 取消自动播放
[msg auto time=0]

点击/等待控制

; 等待用户点击
[click]

; 等待指定毫秒数,不受用户输入打断
[wait time=1000]

; 等待用户点击或指定时间(先到先过)
[click time=3000]

; 跳过未显示的文字,立即继续
[skip]

历史记录/回溯

吉里吉里2 原生支持对话历史(backlog):

; 调用历史记录界面(通常在点击菜单里)
[tjs]
KAG.manager.showBacklog();

文本框的高级用法

多文字框

可以同时开多个文字框(不同位置、不同大小),用来做旁白框、系统提示框等:

[tjs]
var msg2 = KAG.manager.createMessageLayer();
msg2.moveTo(100, 400);
msg2.width = 400;

; 在第二个框里写内容
[msg layer=2]旁白内容……

文字排版

字体

默认字体是 Windows 系统字体。可以通过 TJS2 代码修改:

Layer.current.font = "Microsoft YaHei";
Layer.current.fontSize = 16;
Layer.current.fontColor = 0xFFFFFF;