Developer Manual


KuroScripter开发者使用简述

前期准备

建议使用Win32版的KuroScripter进行移植、开发的测试——使用Nspire的模拟器理论上也是可以的。
你可以点击这里进行下载。


下载完成后请解压到任意位置。如下图。文件夹内应包含krs文件夹。


全局配置

krs/中的HZK12.hzk是点阵字库(12x12),config.krs为全局配置文件。escape.jpg什么用途自己猜测。
可以任何文本编辑器对krs拓展名的脚本进行编辑(本文使用notepad++,使用了自定义的高亮)。
首先配置krs/config.krs这一全局配置文件。

以#(半角井号)开头的一行在脚本中被认为是注释,不进行解析。
全局配置中若使用debug命令,则打开debug模式,反之为release模式。
debug模式从krs/media下读取资源,release模式从krs/game.krp包中读取资源。
本篇默认使用debug模式。(即开发过程中我们的所有素材都是放置在krs/media中的。)
全局配置中若使用fps命令,则将后面的数值指定为fps。
若不指定fps或者指定fps为0,则使用默认fps=15;
另注,所有krs脚本都必须以!(半角感叹号)结束。

游戏配置

在开始编写脚本之前,我们需要选取游戏的通用界面素材。
首先是对话框message.bmp与message_name.bmp。

message.bmp为对话框主体,message_name.bmp为显示名称使用。
kuroScripter中使用RGB(255,0,255)为透明色,填充为该颜色的位置将被绘制为透明。
(对话框的边缘效果透明就是这么做的。)
素材选取完成后需要对对话框的位置、文字显示位置进行配置。
打开游戏配置文件krs/media/config.krs(注意与全局配置不是同一个文件)

文本框为紧挨屏幕底部,姓名框紧挨文本框上部。
textX与textY为文本框内显示的字符的默认起始坐标(相对屏幕的绝对坐标)。
nameX为姓名框偏离屏幕左边的绝对坐标。
lineMax为文本框内一行最大显示的文字数量。
配置中没有指定标题文字的位置而使用了默认参数,使用ttx、tty后跟整数指定标题文字起始坐标。
ttw、tth命令指定标题文字选项之间水平、垂直间隔。
另注,文本框只显示全角字符,半角字符将被转为全角字符
还需关心的素材就是标题画面krs/media/title.jpg,
保存与读取画面的背景krs/media/back_save.jpg,krs/media/back_load.jpg,
选择框select.bmp。

所有上述素材配置完成后,就可以开始下一步的脚本编写了。


脚本编写


对话脚本

建立krs/media/main.krs。

kuroScripter开始新游戏时自动读取main.krs脚本。
某行命令如果以全角字符开始,则认为是一句需要显示的对话。
编写脚本如下图。一定要记得写脚本结束符“!”。

编写完后运行KuroScripter进行测试,开始新游戏,执行效果如图。

如果想要设定说话人名称。请使用n命令,后面跟说话人名称。比如
n 死者
使用n ~可以消去说话人姓名。
n ~


背景脚本

如果想要显示背景,可以使用bg命令,后跟文件名(文件名中可以包含路径)。

bg bg/000.jpg
使用bg ~可以消去背景。
bg ~


立绘脚本

使用cr命令可以创建一个立绘。

cr 0 lihui/ayako000.bmp
cr命令后跟一个整数和一个文件名。整数为立绘标号(范围0-8)。
不同立绘标号的立绘没有互相影响。
使用cr x ~可以消去指定标号的立绘。
cr 0 ~
使用cr,将会使立绘的底端与屏幕底端对齐。但横坐标没有变化。


使用mr命令移动一个立绘的中心位置到屏幕的百分比位置。
比如
mr 0 0.5
会将标号为0的立绘,以立绘的中心轴为基准,水平移动到屏幕的二分之一处。


使用mrx与mry将立绘移动到某具体x,y坐标上。
比如
mrx 0 23
mry 0 56
将立绘标号为0的立绘移动到(23,56)像素的位置。
使用dar命令,清除所有立绘。
dar


跳转控制脚本

以:(半角冒号)开头的一个标识符将被认为是标号。

:拒绝一起去
使用go命令可以跳转到指定标号。
go 拒绝一起去

使用si和sl命令进行选项的选择。
si用于添加选项,sl用于执行选择。
si 一起去
si 拒绝一起
si 再等等
sl
选择的结果将被保存在0号变量中(保存的结果以0开始,上述例子中选择“一起去”则会保存0,选择“拒绝一起”则会保存1……)。
使用if命令来对变量进行判断并跳转
if 《操作数》 《符号》 《操作数》 《语句标号》
其中,操作数可以是变量或者整数。变量的写法为:$《变量序号》,比如
$0 # 零号变量
操作符可以而为eq/lt/le
eq #=> 相等
lt #=> 小于
le #=> 小于等于
例子:
if $0 eq 1 选择拒绝一起
当0号变量为1时跳转到标签“选择拒绝一起”。
使用switch命令可以中断此脚本,转而执行另一个脚本。
switch ending0.krs

一个单独的脚本结束符(!)可以终止当前脚本的执行。
欲查看更多脚本使用的实例,请参考demo的内容。


打包处理

使用任何可以使用的压缩文件工具将media下的文件打包成tar格式(不要把media文件夹本身也打包进去了),并更改为game.krp,放置在krs下。
再在全局配置文件中关闭debug模式就可以单独执行game.krp包中的内容了。如果需要在nspire上使用,请记得加上一个tns后缀再传入nspire。