显示文字相关
这个世界上的文字类冒险游戏,显示文字方式可以大致分为在对话框内显示和电子小说式全画面窗口(Visual-Novel Type)两种。只是文字显示位置的不同,并没有特别大的差异。以上两种显示方式 KAG 均支持。
两种文字显示方式
此外,也能做到竖行显示。
竖行显示
KAG 默认的设定使用的是横行显示和电子小说式。详细的说明请参考 Config.tjs 。本教程将以使用电子小说式为前提,继续说明。
总之先试试显示点啥出来
那么,先试试显示点文字吧。scenario 文件夹中,有一个first.ks 文件。这个文件是 KAG 最先执行的剧本档。
默认状况下,first.ks 内已经存在以下文字。
[waittime=200]
*start|开始
[cm]
你好。
各位看到这么多乱七八糟的代码大概会觉得很麻烦吧,不过,请暂时只先关注「你好。」这一行。请在文本编辑器里,把「你好。」替换成其他的什么文字。比如说「晚上好。」,随便什么都行。
接着,请运行吉里吉里,在[选择文件夹/文件]的窗口中,选择你的工程文件夹,然后按下 [OK] 按钮。请选择整个工程文件夹,不要选择 first.ks 。
Note
拖鞋译注:
使用 KAGeXpress 创建工程的情况(或者工程文件夹名为"Data
" 的情况),直接双击与"Data
" 同一目录下的krkr.eXe
即可。
「晚上好。」
于是,全黑的画面上显示出了「晚上好。」的字样。如何显示背景,将在 ( → 背景的显示 ) 部分说明。
总之,请把你想显示的文字替换掉「晚上好。」写进 first.ks 里,就能像这样显示文字了。
等待点击(换行)的使用
这次,试着在行尾加入等待点击指令吧。加入行尾等待点击代码的方法是,把[l] 放在相应的位置。( [l] 是半角,小写的 L 来着 )
接着,为了点击后能换到下一行继续显示文字,请在[l]后面加入 [r] 。
[waittime=200]
*start|スタート
[cm]
你好。[l][r]
贵安。[l][r]
假如刚刚的程序还启动着,请先关掉,然后重新执行这个工程。
等待玩家点击
「你好。」的之后出现了等待点击图标,点下鼠标之后,换了一行显示出「贵安。」。
等待点击(换页)的使用
要让之前显示的文字全部消除,重新从对话框左上角开始显示新的文字、请在新的一行内写入 [cm] 。( [cm] 为半角 )
但是,[cm]之前不使用等待点击指令的话,会不等待玩家确认就直接清除文字。因此,在[cm] 之前一般要加入 [p] 指令。请看以下的例子。
[waittime=200]
*start|スタート
[cm]
你好。[l][r]
贵安。[l][r]
试试换页吧。[p]
[cm]
换了一页啦。
那么,现在试试运行吧。在[p] 的位置出现了换页等待标记,点下鼠标后,之前显示的文字清除,再次从左上角显示「换了一页啦。」。
Note
清除消息层上的文字相关指令有 [er] [ct] [cm] 三个。指令间有细微的差别,相关内容在存储与读取的说明档内有 ( → 存储・读取 ) 详细说明。假如没有什么特别的需求,可以一律使用 [cm] 。
Note
拖鞋译注:
建议想制作较复杂游戏的初学者养成使用 [er](清除当前消息层)而不是 [cm](清除全部文字层)来清除文字的习惯。
Note
KAG 3 之前的教学文档是使用[ct]代替[cm] ,相比起[ct],[cm]在清除全部文字层之后,自动将当前操作层改为 message0 ,可能比 [ct] 使用起来更方便。
但是,请记得要在可以存档的标签之后的下一行加入[ct]或者[cm]。(拖鞋译注:这行我也不明白……)
KAG 中,所有的文字都在名为「消息层」的层上进行描绘。KAG 默认设定状态下,还有另一个消息层(message1),两个消息层一起使用的话,就可以表现出双人对话式的效果了。具体请参考 current 指令的说明。
指令是什么
总之,到现在为止,凡是出现用[](半角方括号)括起来的东西就是指令。
[ ] 里面包的东西叫做指令(TAG),是用来控制 KAG 系统的东西。
比如说,first.ks 的第一行,写着[wait time=200]
这样的东西。这里的 wait
就是 指令名了,而 time=200
则是这个指令所伴随的 属性。属性则是由 time
这个 属性名 ,和 200
这个 属性值 组成的。
像这样,首先是 [ 后面跟着「指令名」,空一个空格之后写入 「属性名=属性值」。假如有很多的「属性名=属性值」可以继续写,之间均用空格隔开。最后则用 ] 来结束一个指令。
之后,本教程中将出现更多的「指令」,一开始学写的时候,照葫芦画瓢就行了,我想不久就能找到感觉了。
「指令」是非常重要的。KAG 中,除了显示文字以外的所有命令都是通过「指令」下达的。「指令」也有很多,具体的请参考这里Reference的详细说明。
假如使用宏(Macro) ( → 宏(Macro)的使用 ) 的话,可以把现有的「指令」组合起来,制作出自定义的新「指令」。将重复使用的多个「指令」简化为一个。制作游戏系统时,预先自己定义一套「宏指令」,将使游戏制作变得更方便。
Note
拖鞋广告:
KAGeXpress提供的“简化指令”即是使用宏制作的,自定义宏的方法,请参考 system 文件夹下的 func.ks 档。试着制作个性化的指令吧。(^^)
Note
KAG 3 以下的版本,行尾用 \ (斜杠) 来进行换行。KAG 3 之后的版本,使用 [r] 指令来换行。假如希望使用和 KAG 3 之前版本一样的换行方式,请在 Config.tjs 里把 global.ignoreCR 的值设定为 false 。
命令行
在行头写入 @ (半角@) ,KAG 将把这一行识别为「命令行」。
@ 的后面,和 [ ] 括起来的部分一样书写,也就是,在指令之后,写上属性(如果这个指令有属性的话……)。请注意使用@的情况,一行只能写一个指令。
虽然书写的方式不同,但执行的效果是一样的。
例如说,下面的2行意思是一样的。
[wctime=20]
@wctime=20
还是使用「等待点击(换页)的使用」为例,将代码替换成以下一段。
@waittime=200
*start|スタート
@cm
你好。[l][r]
贵安。[l][r]
试试换页吧。[p]
@cm
换了一页啦。
剧本中的特殊符号・特殊行
剧本档实际上只是普通的文本文档,可以随便的写入任何东西。但是在 KAG 中,以下的符号是有特殊作用的,想使用的时候,请务必注意。
- [ ( 半角左方括号 )
- 标记一个指令开始的符号(^^;;
如果无论如何都想在对话中使用这个符号的话,[[
像这样,连续的写上两个就行。 - ; ( 半角分号 )
- 将这个符号使用在在一行的开头的话,接着在这行里无论写有什么都会被无视。也就是说可以在这个符号的后面写入“注释”。
- * ( 半角星号 )
- 在一行的开头使用的话,就是加入了一个“标签”。除了可以作为选择支跳转到的目标以外,也用于标记存档点 (这个以后再说)。
- @ ( 半角的at符号 )
- 在一行的开头使用的话,表示这一行是命令行。
- 半角空格
- 使用 [] 式的指令,"[" 的前面如果有半角空格,也会被当作不存在(被无视)。这么使用的话,剧本档里就能进行“缩进”排版了。请注意被忽略的只是半角空格,全角空格还是会被当作对话显示的。