ASC获得字符的ASCII码。
BBEGIN开始位图绘制。
BCREATE生成指定名称指定大小的空白位图。
BDELETE删除指定名称的位图。
BDUP从指定的位图复制生成一个新的位图。
BEEP发出指定频率的声音。(译注:频率取值范围为37~32767)
BEND结束对位图的操作。
BFILL用指定的颜色填充位图。
BFORMAT向位图中写入字符串。
BFRECT向位图中插入一个矩形。
BFROMT用指定的纹理创建位图。
BGETSIZE获得位图的宽和高。
BGMFADEOUT指定BGM停止或者切换的时候淡出的时间。
BGMPLAY循环播放BGM。
BGMPLAYONCE播放一遍BGM。
BGMSTOP停止播放BGM。
BGMVOLUME调节BGM的音量。
BGRADATION用渐变颜色填充位图。
BGVFADEOUT指定BGV的淡出时间。
BGVPLAY播放BGV。
BGVVOLUME指定BGV的音量。
BJOINX在第一张位图右边接上第二张位图生成新的位图。
BJOINY在第一张位图下边接上第二张位图生成新的位图。
BLOAD读取指定的对象到位图中。
BMONOTONE根据指定的颜色单色化位图。
BNEGA反转位图的颜色。
BRESIZE扩大或缩小位图。
BREVERSE在x或y或两个方向上翻转位图。
BSAVE将位图保存为PNG。
BTN将指定的精灵定义为按钮。
BTNCLEAR清楚按钮定义。
BTNEXEC执行按钮处理。
BTRIM截取位图指定坐标区域。
CALL调用由defsub预先定义好的命令。
CAPTION设定窗口标题的文字。
CCAPTION设定控制台的窗口标题。
CCLEAR清空控制台。(清除所有画面上的文字)
CCLOSE关闭控制台窗口。
CCOLOR设置控制台的颜色。
CGETCURSOR获得控制台中光标的坐标。
CGETSIZE获得控制台横向和纵向容纳的字符数。
CHR由ASCII码获得字符。
CINKEY从控制台获取一个字符。
CLEARMOUSE清空窗口所有的鼠标消息。
CLICK等待一次鼠标左键点击。
CLOCATE设置控制台光标位置。
COPEN打开控制台窗口。
CPRINT向控制台输出字符串。
CREAD从控制台读入一个字符串。
CSETSIZE设定控制台窗口横向和总想容纳的字符数。
CSETTEXT在指定的位置输出指定的字符串。
CWRITE不换行输出字符串。
DEFSUB自定义命令。命令名同时也是子程序的名字。
DOEVENTS处理消息,在循环的时候需要适时调用。
ERROR显示错误信息并退出。
EXEC执行字符串中的命令。
FCHK检查文件是否读入内存。
FDELETE删除特定字体。
FILECHK检查此文件或者压缩包中是否存在该文件。
FILETIME获得此文件的修改日期。
FINSERT将此命令中的文件当作实际读取的文件记录到记录(log)中。
FONT生成特定字体。
GBEGIN开始对画面进行绘制。
GBEZIER绘制贝塞尔曲线。
GBLEND切换渲染绘制模式。
GCIRCLE绘制圆。
GELLIPSE绘制椭圆。
GEND停止对画面的绘制。
GETBGMVOLUME获得现在播放的BGM的音量。
GETBGVVOLUME获得当前BGV的音量。
GETCLICK获得鼠标输入。
GETLOGTEXT获得回想记录中的数据。
GETMOUSE获得鼠标的坐标。
GETSCREENSHOT生成屏幕截图。
GETSEVOLUME获得SE的音量。
GETSKIP获取当前的Skip模式。
GETSPCELL获得指定精灵组的编号。
GETSPINFO获取精灵的信息。
GETVOICEVOLUME获得语音的音量。
GFCIRCLE绘制填充圆。
GFELLIPSE绘制填充椭圆。
GFRECT绘制填充矩形。
GLINE绘制直线。
GLINEL绘制直线列。
GLINES绘制折线。
GPOINT绘制点。
GPOINTL绘制点列表。
GRECT绘制矩形。
GTRIANGLE绘制填充三角形。
GTRIANGLEF绘制三角形构成的扇形。
GTRIANGLEL绘制填充三角形列表。
GTRIANGLES绘制连续三角形。
INPUT接受用户输入。
ISDEF检查变量是否被定义。
JOIN将字符串用指定字符连接。
JOINA将数组用指定字符连接。
LCASE返回小写字母。
LCHK检查标签是否存在。
LEFT从左边截取字符串。
LEN返回字符串长度。
LINSERT将此命令中的标签(label)当作实际通过的标签记录到记录(log)中。
LOAD从存档文件读取游戏存档。
LOGCHK检查指定编号的log。
LRCLICK等待点击。
LTRIM删除字符串左边的空格,不删除右边的空格。
LUA执行lua脚本。
LUAF执行Lua函数。
LUAFILE读取Lua文件并执行。
MID从指定位置开始截取指定数目的字符。
MOVIE播放影片。
MRESET重置动画纹理。
MWRITE将现在播放的动画保存为图像文件。
MWRITEBEGIN打开一个电影文件供写入。
MWRITEEND停止对电影文件的写入。
NUM将字符串转换为数值。
OKBOX显示一个有OK按钮的对话框,在按下OK按钮之后脚本才会继续执行。
PARAM调用子程序的时候规定接受参数的变量。
PRINT将精灵的状态反应到屏幕上。
PI返回圆周率。
QUAKE摇晃画面。
QUIT终止程序。
RANDOM生成随机数。
RANDOMSEED初始化随机数种子。
REGEX_REPLACE根据正则表达式替换字符串。
REPLACE替换字符串。
RESETTIMER重置内部的计时器。
RIGHT从字符串右端截取指定数目的字符。
RTRIM删除字符串右边的空格。
SAVE将最后一个保存点的数据保存至文件。
SAVEMODE打开/关闭更新保存点的功能。
SAVEPOINT强制地更新保存点。
SAVETIME获得存档的保存时间。
SCHK检查存档是否存在。
SDELETE删除声道。
SEARCH在字符串中搜索指定的字符串。
SECHVOLUME单独设置某个声道的音量。
SEFADEOUT设置SE的淡出时间。
SELECT选择支命令。
SELOOP循环播放SE。
SEPLAY播放SE。
SESTOP停止SE。
SESTOPALL停止所有SE。
SETCLIPBOARD设置剪切板中的文字。
SETMOUSE将鼠标移动到指定的位置。
SEVOLUME设置SE的音量。
SFADEOUT经过指定的时间之后对声音进行淡出处理。
SGN判断正负。
SISPLAYING确认该声道是否在播放声音。
SKIP变更Skip模式。
SLEEP停止指定的时间。
SOUND新增一个声道。
SP生成精灵。
SPAN对指定的声道进行偏移处理。
SPANIMATIONRESET重置所有精灵的动画
SPAUSE暂停指定的声道。
SPBEZIER对精灵进行贝塞尔变换。
SPCELL切换精灵的分格编号。
SPDRAW绘制所有的精灵。
SPDELETE删除精灵。
SPDELETES删除以该字符串开始的精灵。
SPFILL绘制单色的精灵。
SPFORMAT向精灵中写入字符串。
SPHITCHECK判断精灵是否覆盖了指定的坐标。
SPLAY在指定声道播放声音。
SPLIT根据指定的字符将字符串分割至若干个变量中。
SPLITA根据指定的字符将字符串分割至一个数组中。
SPMOVE移动精灵。
SPMOVELT移动精灵。(附带旋转和缩放)
SPPUTTEXT向精灵里写入文字,然后依次显示它们。
SPSET生成一个空的精灵组。
SPSETCLEAR删除精灵组里的所有精灵,但保留精灵组。
SPSETDELETE删除一个精灵组。
SPSETVISIBLE切换精灵组的显示与隐藏。
SPSETZ变更精灵组的Z值。
SPVISIBLE显示/隐藏精灵。
SPZ设定精灵的Z值。
SRESUME继续播放由SPAUSE停止的声道。
SSTOP停止声道上的声音播放。
STR将参数转换为字符串。
STRF将数值格式化输出。
STRLOAD读取文本文件,返回对应的字符串。
STRSAVE将指定的字符串保存到指定的文本文件中。
SVOLUME变更指定声道的音量。
SYSTEM在命令提示符下执行指定的命令。
TBEGIN开始对纹理的绘制。
TBEZIER对纹理进行贝塞尔变换。
TCHK获得当前文本是否已读。
TDELETE删除纹理。
TDRAW将纹理绘制在画面指定位置。
TDRAWLT对纹理进行旋转扩大缩小。
TDRAWTR指定三角形的三个顶点,对相应的多边形绘制纹理。
TEND结束对纹理的绘制。
TFILL向指定的纹理填充指定颜色。
TFORMAT向纹理上写入字符串。
TFRECT向纹理的指定区域中填充颜色。
TFROMB由位图生成纹理。
TGETSIZE获得纹理的大小。
TISPLAYING判断是否在播放纹理动画。
TLOAD载入文件作为纹理。
TRANSITION由两张位图生成变换中图像。
TRAP执行陷入。
TRIM删除字符串两端的空格。
TSAVE将纹理保存为文件。
TYPE返回参数的值类型。
UCASE转换为大写字母。
VCLEAR清除指定的变量,数组,或者结构体。
VCOPY复制指定的变量,数组,或者结构体。
VGET获得PARAM传递的变量。
VLBOUND获得数组最小非空元素的下标。
VLEN获得数组的长度。
VSET对param传递的变量赋值。
VOICEPLAY播放语音。
VOICEFADEOUT指定语音淡出的时间。
VOICEVOLUME设定语音的音量。
VUBOUND获得数组最大非空元素的下标。
WAIT等待指定的时间。
WAITTIMER等待从RESETTIMER命令开始执行算起的时间。
ZENKAKU将字符串转换为全角字符。
ERROR
参数:ERROR str
例:
ERROR "文件不存在"
功能:
显示错误信息并退出。
SELECT
参数:SELECT text1,lb1,text2,lb2,...
例:
SELECT "选项1",@lb1,"选项2",@lb2
功能:
选择支命令。会调用基本的@selectb标签。
制作ADV游戏的时候主要使用的就是精灵功能。
纹理命令和绘图命令在内部使用的时候,是不能同时执行的。
此外,无论立绘,背景,日期还是对话文字,文字窗口等等,都是“精灵”。
并没有打算将他们写成固定的命令,而是由基本的功能组合起来的(请参考例子程序)。
至于为什么要这么做,是因为对于不同的游戏来说,每一个大功能实现方式和功能差别太多。
而且,精灵的显示状态更改之后并不会马上反映到屏幕上。
需要用PRINT命令指定显示效果,才能显示出来。
这个显示模式和旧Nscripter是一样的。
精灵的名称定义如下
"setname:spname"
setname为精灵组(sprite set)的名称,spname为精灵的名称
精灵组(sprite set)好比一个文件夹,精灵就像文件一样放在里面。
精灵组是在对按钮处理时的操作对象,其Z值用于在显示与隐藏之间切换。
省略精灵组名称的时候,精灵组的名称为"",此精灵组的Z值默认为10000.
SPSET
参数:SPSET name,z
例:
SPSET "setname",10
功能:
生成一个空的精灵组。有同名的精灵组存在的时候不会生成。
请注意:Z值为精灵组的Z值。精灵的Z值需要另外指定。
精灵首先会根据精灵组的Z值排序,再在精灵组中根据每个的Z值排序。
SPSETVISIBLE
参数:SPSETVISIBLE name,v
例:
SPSET "setname",1
功能:
切换精灵组的显示与隐藏。1为显示,0为隐藏。
即使精灵处于显示状态,如果其所属的精灵组切换为隐藏状态的话精灵也会隐藏。
精灵处于隐藏状态的话,即使所属的精灵组处于显示状态也不会显示。
SPSETCLEAR
参数:SPSETCLEAR name
例:
功能:
删除精灵组里的所有精灵,但保留精灵组。
SPSETDELETE
参数:SPSETDELETE name
例:
功能:
删除一个精灵组。
SPSETZ
参数:SPSETZ name,z
例:
功能:
变更精灵组的Z值。
SP
参数:SP nameopt
例:
SP "sp1"{name="test.png",x=100,y=100,z=100}
SP "set:sp2"{name={"cell1.png","cell2.png"},x=200,y=200,z=100,cell=0,blend=1} ; 渲染方式(blend)默认为0,可省略,1为叠加渲染
SP "set:sp2"{name={"cell1.png","cell2.png"},cx=300,cy=300,xs=1.2,ys=1.2,rot=45,z=100,cell=0} ; 角度以度(deg)为单位,而不是弧度(rad)。
SP "set:sp3"{name={"cell1.png","cell2.png","cell3.png"},x=200,y=200,z=100,animtime=100,animtype="normal"}
※参数在不必要的时候可以省略。
※和NScripter不同的是,多个分格的图像需要分别指定。这个指定不是作用于整个图像的。
※动画的模式(animation type)如下:
"normal"或者未指定的""为0→1→2→3→0→1→2→3→0→1...
"stop"则是0→1→2→3(停止)
"round"为0→1→2→3→2→1→0→1→2→3→...
"lua"会调用animfunc预先指定的Lua函数。是为懂Lua的用户准备的。详细请参照basic.sprite_animation_check。
功能:
生成精灵。在同名精灵存在的时候删除该精灵。
SPDELETE
参数:SPDELETE name
例:
SPDELETE "set:sp1"
功能:
删除精灵。
SPDELETES
参数:SPDELETES head
例:
SPDELETES "set:btn"
功能:
删除以该字符串开始的精灵。
例子的代码中,如果存在"set:btn0""set:btn1"..."set:btn99"等精灵,都会被删除。
请注意:很容易误删不想删掉的精灵。
GETSPINFO
参数:GETSPINFO name,info
例:
GETSPINFO "sp1",%info
功能:
获得精灵的信息。例子中获得了“sp1”精灵的信息。
(常规定义)
%info.x ; X坐标
%info.y ; Y坐标
(旋转放缩定义)
%info.cx ; CX坐标
%info.cy ; CY坐标
%info.xs ; X扩大率
%info.ys ; Y扩大率
%info.rot ; 旋转角
%info.z ; Z值
%info.a ; α值
%info.cell ; 分格编号
%info.cellnum ; 分格数
%info.w ; 宽
%info.h ; 高
%info.animtype ; 动画的模式(animation type)
%info.animtime ; 动画时间
SPANIMATIONRESET
参数:SPANIMATIONRESET
例:
功能:
重置(reset)所有精灵的动画。
SPBEZIER
参数:SPBEZIER name,x0,y0,x1,y1,x2,y2,x3,y3,sx0,sy0,sx1,sy1,sx2,sy2,sx3,sy3,sx4,sy4,sx5,sy5,sx6,sy6,sx7,sy7
例:
SPBEZIER "sp",0,0, 1,0, 1,1, 0,1, 0.2,-0.2, 0.8,-0.2, 1.2,0.2, 1.2,0.8, 0.8,1.2, 0.2,1.2, -0.2,0.8, -0.2,0.2
功能:
对精灵进行贝塞尔(Bezier)变换。指定的坐标不存在的话则不会进行变换。
坐标首先是按顺时针顺序的左上、右上、右下、左下,然后是按上右下左的顺时针顺序的上边左,上边右,右边上,右边下,下边右,下边左,左边下,左边上。坐标值都是按左上0,0,右下1,1来指定的。
SPCELL
参数:SPCELL name,cell
例:
SPCELL "sp1",2
功能:
切换精灵的分格编号。
SPFILL
参数:SPFILL name,cell,color
例:
SPFILL "sp1",0,#00000000
功能:
绘制单色的精灵。对于文字窗口,可以用这个命令涂抹掉绘制之前的文字。
SPMOVE
参数:SPMOVE name,x,y,a
例:
SPMOVE "sp1",100,100,255
功能:
移动精灵。坐标为精灵左上角的位置。α值省略的时候为255。
SPMOVELT
参数:SPMOVELT name,cx,cy,xs,ys,rot,a
例:
SPMOVELT "sp1",300,300,1.2,1.2,RAD(45),255
功能:
移动精灵,指定的坐标为精灵中心的坐标和旋转放缩值。α省略的时候为255。
角度的单位为弧度(rad),度(deg)需要使用RAD()进行转换。
SPVISIBLE
参数:SPVISIBLE name,v
例:
SPVISIBLE "sp1",0
功能:
显示/隐藏精灵。1为显示,0为隐藏。
SPZ
参数:SPZ name,z
例:
SPZ "sp1",3
功能:
设定精灵的Z值。
SPFORMAT
参数:SPFORMAT name,cell,str,opt,rubyopt
例:
SPFORMAT "sp1",0,"あいうえおかきくけこ{漢字/ルビ}さしすせそ",{font="text",x=2,y=2,w=25,h=4},{font="ruby"}
功能:
在不需要注音(ruby)功能(比如英语文字)的时候可以省略rubyopt参数。
向精灵中写入字符串。这是一个精灵替换命令,而不是绘制命令。
在例如回想模式的时候使用此命令写入字符串。文字中的%p等字符会被忽略。
SPPUTTEXT
参数:SPPUTTEXT name,cell,str,opt,rubyopt
例:
SPPUTTEXT "sp1",0,"あいうえおかきくけこ{漢字/ルビ}さしすせそ",{font="text",x=2,y=2,w=25,h=4,wait=50},{font="ruby"}
功能:
在不需要注音(ruby)功能(比如英语文字)的时候可以省略rubyopt参数。
向精灵里写入文字,然后依次显示它们。wait可以调整速度。速度指定为0的时候是立即全部显示。
文字里出现%p以及到达整段末尾时,会调用基本的@textb来进行文字窗口的界面的处理。
但是末尾为_的时候不会进行处理。屏幕会保持完毕的样子继续执行下面的命令。
(此函数和旧Nscripter的linepage函数类似)
GETSPCELL
参数:GETSPCELL(name)
例:
%cell=GETSPCELL("sp1")
功能:
获得指定精灵组的编号。
SPHITCHECK
参数:SPHITCHECK(name,x,y)
例:
if SPHITCHECK("sp1",100,100)==1 then goto @hit
功能:
判断精灵是否覆盖了指定的坐标,是则返回1,否则返回0。
现在所有的坐标都是左上坐标的形式。
参数:PRINT effectsymbol,time,param
例:
PRINT #C
PRINT #RD,500
PRINT #SL,500
PRINT #F,500
PRINT #U,500,"rule.png"
功能:
精灵在改变状态之后,并不会反应在屏幕上。
而PRINT命令能将改变反映到实际屏幕上。这一点和旧Nscripter是一样的。
第一个参数用于指定变化的类型。
#C 或者"" 瞬时显示 不指定时间。
#F 交叉淡入淡出
#RU #RD #RL #RR 从上下左右方向进入
#SU #SD #SL #SR 从上下左右方向卷动进入
#U 全局变换(Universal Transition) 第三个参数为掩模图像(原文为ルール画像)。和旧Nscripter的18号效果是一样的。
QUAKE
参数:QUAKE time,num,size
例:
功能:
摇晃画面。三个参数依次为持续时间(单位毫秒),摇动次数,摇动幅度(1为画面的1/20)。
为了不露出画面之后的黑色会对图像进行扩大,摇动幅度越大扩大率就越大。
对此命令的功能不满的话可以在system.lua的QUAKE命令中编写自己中意的命令。
CLICK
参数:CLICK
例:
功能:
等待一次鼠标左键点击。精灵动画等并不会暂停。
LRCLICK
参数:LRCLICK retval
例:LRCLICK %ret
功能:
等待点击,会判断按下的是鼠标左键还是右键。精灵动画等并不会暂停。
点击左键变量会被赋值#L,单击右键变量会被赋值#R。
在CG模式里使用很方便。
※关于精灵操作字符串
和旧Nscripter的扩展按钮功能相近的功能。在打算进行默认的按钮变化以外的功能的时候使用。
"S(test.ogg)" 播放指定的声音。
"P(spname,N)" 变更指定的精灵的分格编号。N只能使用直接的整数,不能使用变量。
"C(spname)" 清除指定的精灵。
"M(spname,x,y)" 移动指定的精灵。
上面的效果可以组合使用。
BTNCLEAR
参数:BTNCLEAR setname,defstr
例:
功能:
※setname和defstr在不必要的时候可以省略。
※setname省略的时候,精灵组的名字相当于""。
※在指定了defstr的时候不能省略setname。
清除按钮定义。按钮定义和精灵组是不同的。
defstr是鼠标和任何按钮都不重叠的时候执行的“精灵操作字符串”。
BTN
参数:BTN name,opt
例:
BTN "sp1"
BTN "sp2",{style="push"}
BTN "sp3",{style="toggle"}
BTN "sp4",{on="P(sp1,0)P(sp2,1)"}
BTN "bar0",{style="bar"}
功能:
将指定的精灵定义为按钮。
opt为以下指定的值。
on="精灵操作字符串"
当鼠标移动到按钮上时执行的处理。
off="精灵操作字符串"
当鼠标从按钮上移开时执行的处理。
style="指定的样式"
用于指定按钮的样式。省略的话为"push"。以下为可能的种类。
"push" 以及"" 为push按钮,鼠标重叠切换为分格1,离开为分格0,返回值为精灵名。
"toggle" toggle按钮,按下的时候由分格0切换到分格1。返回值为"精灵名:0"或者"精灵名:1"。
"bar" bar 将分格像条一样的使用,点击精灵的某处就会移动条的位置。稍微有一些费解请参考例子的用法。
align="left"或者align="right"
bar类型的按钮,规定精灵的那个方向是0。省略的话是默认left。
noreset=1
对于push按钮,按下之后会回复到分格0的状态,noreset设置为1的话则不会回复。
BTNEXEC
参数:BTNEXEC val,setname,opt
例:
BTNEXEC %ret,"setname",{wheel=1}
功能:
※setname和opt在不必要的时候都可以省略。
※省略setname的时候,精灵组默认为""。
※在指定了opt的时候不能省略setname。
执行按钮处理。返回值为符号或者精灵名,其中精灵名不含其所在的精灵组名。
也就是说在点击"set:sp"的精灵的时候返回的值为"sp"。因为命令中已经包含了精灵组的名字。
返回值如下:
push按钮……"精灵名"
toggle按钮……"精灵名:0"或者"精灵名:1"
bar……"精灵名:分格编号"
""……点击按钮之外的地方
#R……单击右键时
opt为以下指定的值
wheel=1
获得滚轮的输入。返回值为#WU(滚轮上滚),#WD滚轮下滚。
ctrl=1
获得Ctrl键的输入。返回值为#CTRL。
spcret=1
获得Space和Enter键的输入。返回值为" "或者#RETURN。
automode=1
执行自动模式。使用语音的时候在语音结束时,未使用语音时在time所规定的时间之后继续执行。
超时(time out)(或者语音结束)的时候返回#TIMEOUT。
time=1000
指定超时的时间。在自动模式之下,未使用语音的时候以及未开启自动模式的时候,超时所需的时间。
ldown=1
判断鼠标左键按下。返回值#LD。
rdown=1
判断鼠标右键按下。返回值#RD。
func=1
获得功能键的输入。返回值为#F1~#F12。
cursor=1
获得方向键的输入。返回值为#UP #DOWN #LEFT #RIGHT。
alphabet=1
获得字母按键的输入。返回值为#KEY_A~#KEY_Z。
FONT
参数:FONT name,opt
例:
FONT "text1",{}
FONT "text2",{name="MS ゴシック",color=#FFFFFFFF,width=16,height=16}
FONT "text3",{name="MS ゴシック",style="outline",outlinecolor=#FF000000,color=#FFFFFFFF,width=24,height=24}
FONT "text4",{name="MS ゴシック",style="shadow",color=#FFFFFFFF,shadowcolor=#FF000000,width=24,height=24}
FONT "text5",{name="MS ゴシック",style="fancy",outlinecolor=#FF000000,color1=#FFFFEEAA,color2=#FFFFFFFF,shadowcolor=#FF000000,fx=1,fy=1,width=24,height=24}
功能:
生成特定字体。特定字体不会被保存,所以一定要在脚本初始声明。
FDELETE
参数:FDELETE name
例:
FDELETE "text1"
功能:
删除特定字体。
※程序内部使用的是初级声音功能。需要同时也使用初级声音功能的时候,请调用内部相关函数。
BGMPLAY
参数:BGMPLAY name
例:
BGMPLAY "test.ogg"
功能:
循环播放BGM。
BGMPLAYONCE
参数:BGMPLAYONCE name
例:
BGMPLAYONCE "test.ogg"
功能:
播放一遍BGM。
BGMSTOP
参数:BGMSTOP
例:
BGMSTOP
功能:
停止播放BGM。
BGMVOLUME
参数:BGMVOLUME vol
例:
BGMVOLUME -10000
功能:
调节BGM的音量。范围为0~-10000,0最大,-10000为静音。
一般来说-2000左右是差不多能听清的范围。实际情况听起来舒服的范围下需要尝试。
和音量相关的命令均是这个范围。
BGMFADEOUT
参数:BGMFADEOUT time
例:
BGMFADEOUT 1000
功能:
指定BGM停止或者切换的时候淡出的时间。单位为毫秒。
开始淡出后无法停止执行。
在切换为其他音乐的时候,会在淡出原曲的同时,平行开始播放新曲。
GETBGMVOLUME
参数:GETBGMVOLUME()
例:
bgmvol=GETBGMVOLUME()
功能:
获得现在播放的BGM的音量。
BGVPLAY
参数:BGVPLAY ch,name
例:
BGVPLAY 0,"bgvoice.ogg"
BGVPLAY 0,""
功能:
BGV(Back Ground Voice,未播放语音(VOICEPLAY命令)时循环的声音)播放命令。
ch为0~15,文件名为""的时候停止播放BGV。
BGVFADEOUT
参数:BGVFADEOUT time
例:
BGVFADEOUT 1000
功能:
指定BGV淡出的时间(毫秒)。
BGVVOLUME
参数:BGVVOLUME vol
例:
功能:
指定BGV的音量。
GETBGVVOLUME
参数:GETBGVVOLUME()
例:
bgvvol=GETBGVVOLUME()
功能:
获得当前BGV的音量。
SEPLAY
参数:SEPLAY ch,name
例:
SEPLAY 0,"test.ogg"
功能:
播放SE,ch为声道0~15。
SELOOP
参数:SELOOP ch,name
例:
SELOOP 1,"loopse.ogg"
功能:
循环播放SE。
SESTOP
参数:SESTOP ch
例:
SESTOP 1
功能:
停止SE。
SESTOPALL
参数:SESTOPALL
例:
SESTOPALL
功能:
停止所有的SE。
SEVOLUME
参数:SEVOLUME vol
例:
SEVOLUME -1000
功能:
设置SE的音量。
SECHVOLUME
参数:SECHVOLUME ch,vol
例:
SECHVOLUME 4,-10000
功能:
单独设置某个声道的音量。
SEFADEOUT
参数:SEFADEOUT time
例:
SEFADEOUT 1000
功能:
设置SE的淡出时间(毫秒)。
GETSEVOLUME
参数:GETSEVOLUME()
例:
sevol=GETSEVOLUME()
功能:
获得SE的音量。
VOICEPLAY
参数:VOICEPLAY name,spd
例:
VOICEPLAY "voice0000.ogg"
VOICEPLAY "voice0000.ogg",2
功能:
播放语音。spd参数可以省略。例子中的2表示2倍速播放。
文件名为""的时候停止当前播放的语音。
VOICEFADEOUT
参数:VOICEFADEOUT time
例:
VOICEFADEOUT 1000
功能:
指定语音淡出的时间(毫秒)。
VOICEVOLUME
参数:VOICEVOLUME vol
例:
VOICEVOLUME -10000
功能:
设定语音的音量。
GETVOICEVOLUME
参数:GETVOICEVOLUME()
例:
voicevol=GETVOICEVOLUME()
功能:
获得语音的音量。
MOVIE
参数:MOVIE name,clickskip,volume
例:
MOVIE "test.mpg",1,0
※clickskip省略的话为0,volume省略的话和BGM的音量相同。
功能:
以充满整个窗口,在所有元素最前播放影片,会停止其他所有动作的处理。
用于游戏的OP、ED或者不需要实现交互操作的短电影。
clickskip指定为1的话点击可跳过影片。
MRESET
参数:MRESET
例:
MRESET
功能:
重置所有的动画纹理,使之从头开始播放。
MWRITEBEGIN
参数:MWRITEBEGIN filename,width,height,fps,framenum
例:
MWRITEBEGIN "test.avi",800,600,30,60 ;30fps,共60帧,也就是说2秒的动画
功能:
打开一个电影文件供写入。格式为无压缩的AVI。
同时只能写入一个文件。
MWRITE
参数:MWRITE frame,bmpname
例:
MWRITE 10,"bmp"
功能:
将现在播放的动画保存为图像文件。
图像的部分请参照后面的位图类命令中的“位图名”来指定。
MWRITEEND
参数:MWRITEEND
例:
MWRITEEND
功能:
停止从图片到电影文件的生成。将改变写入到文件中。
QUIT
参数:QUIT
例:
QUIT
功能:
终止程序。和基本的END功能实现方式不同。
END命令还有END IF,END LOOP等用法(此外,Lua只有end能够终止程序。)、为了容易理解使用此命令。
LOAD
参数:LOAD num
例:
LOAD 2
功能:
从存档文件读取游戏存档。num为存档编号。
SAVE
参数:SAVE num
例:
SAVE 2
功能:
将最后一个保存点的数据保存至文件。num为存档编号。
保存点会在一段文字开始的时候自动更新。
SAVEMODE
参数:SAVEMODE num
例:
SAVEMODE 1
功能:
打开/关闭更新保存点的功能。
为0的话在保存点处不更新。
SAVEPOINT
参数:SAVEPOINT
例:
SAVEPOINT
功能:
强制地更新保存点。
会耗费一定的时间,在不必要的地方不要轻易使用。
SAVETIME
参数:SAVETIME num,yearval,monthval,dayval,hourval,minval,secval
例:
SAVETIME 3,%year,%month,%day,%hour,%min,%sec
功能:
获得存档的保存时间。
SCHK
参数:SCHK(num)
例:
%saveexist=SCHK(2)
功能:
存档存在的话返回1,否则返回0。num为存档编号。
WAIT
参数:WAIT time,clickskip
例:
WAIT 1000
WAIT 2000,1
功能:
等待指定的时间。用于执行动画。
clickskip可以省略。指定1的话,允许单击跳过等待。
SKIP
参数:SKIP num
例:
SKIP 1
功能:
变更Skip模式。
0为关闭Skip(正常模式),1为Skip模式,2为自动模式。
GETSKIP
参数:GETSKIP()
例:
%skipmode=GETSKIP()
功能:
获取当前的Skip模式。
TCHK
参数:TCHK()
例:
%alreadyread=TCHK()
功能:
获得当前文本的属性,已经阅读过的部分返回1,未读的部分返回0。
用于实现跳过已读文本功能。在@textb中判断这个值然后选择是否关闭Skip模式。
LUA
参数:LUA str
例:
LUA 'os.execute("pause")'
功能:
执行Lua脚本。
LUAFILE
参数:LUAFILE filename
例:
LUAFILE "system.lua"
功能:
读取Lua文件并执行。
LUAF
参数:LUAF str
例:
%a=LUAF("foo(1)")
功能:
执行Lua函数,将函数的返回值作为此命令的返回值。
DEFSUB
参数:DEFSUB commandname,prototypestr
例:
DEFSUB chr,"SN"
功能:
自定义命令。命令名同时也是子程序的名字。
例子中代码,第一个字符串变量chr定义了一个chr命令。
@chr
param %name,%pos
命令的参数的获得如上例中在命令内部实现。
原型(prototype)的定义如下:
S 接受字符串
N 接受数值
R 接受变量名()
A 接受数值或者字符串
.
?N ?S 参数存在的时候为N和S,没有的时候接受为#NIL。
* 之后的参数都不进行类型检查,全部接受。
O 接受可选参数。在系统内部只是一个字符串(值传给了basic.decode_table)
PARAM
参数:PARAM param1,param2,...
例:
PARAM %name,%pos
功能:
调用子程序的时候规定接受参数的变量。
VSET
参数:VSET varname,value
例:
defsub
test,"R"
test name
CPRINT %name
quit
@test
PARAM %v
VSET %v,"名前"
return
功能:
对param传递的变量赋值。
VGET
参数:VGET(varname)
例:
defsub test,"R"
%name="てすと"
test %name
quit
@test
PARAM %v
CPRINT VGET(%v)
return
功能:
获得PARAM传递的变量
CALL
参数:CALL label,prototypestr,param1,param2,...
例:
CALL @test,"SS","paramstr1","paramstr2"
功能:
调用预先由defsub定义好的命令,label为子程序名。
必须要使用这种方法处理的DEFSUB的适用范围并不广。
执行部分的语句和DEFSUB的内容完全相同。
INPUT
参数:INPUT val,text,caption
例:
INPUT %ret,"这是测试文本","对话框标题"
功能:
显示一个接受字符串的对话框,传递给val处的变量。
GETSCREENSHOT
参数:GETSCREENSHOT bmpname
例:
GETSCREENSHOT "test"
功能:
生成一个位图对象,用于保存屏幕截图。
GETLOGTEXT
参数:GETLOGTEXT num,tag,text
例:
GETLOGTEXT 0,%tag,%text
功能:
获得回想记录中的数据。
0表示是当前的文字,1~某个数则是表示相对多少页前的文字。
LOGCHK
参数:LOGCHK(num)
例:
%logexist=LOGCHK(1)
功能:
存在指定编号的log的话返回1,否则返回0.
如果这个函数返回1的话,就可以使用GETLOGTEXT命令来获得log。
LCHK
参数:LCHK(label)
例:
%labelflag=LCHK("@test")
功能:
如果标签存在的话返回1,否则返回0。
用于实现场景回想功能。
FCHK
参数:FCHK(filename)
例:
%fileflag=FCHK("ev\test.png")
功能:
如果已经将图像作为纹理读入内存则返回1,否则返回0。
用于实现CG鉴赏等功能。
FILECHK
参数:FILECHK(filename)
例:
%appendflag=FILECHK("06.ns2")
功能:
检查此文件或者压缩包中是否存在该文件。
FCHK是检查是否已读入该文件,如果存在但是未读入的话也会返回0。
而此命令则是存在的话会返回1。请注意这一点。
此功能用于检查是否有更新包。
LINSERT
参数:LINSERT label
例:
LINSERT "@test"
功能:
将此命令中的标签(label)当作实际通过的标签记录到记录(log)中。
比如回想模式中的标签(label)和实际的剧本中的是不一样的。(用于进行回想模式中的特殊处理等)
FINSERT
参数:FINSERT filename
例:
FINSERT "test.png"
功能:
将此命令中的文件当作实际读取的文件记录到记录(log)中。
在CG鉴赏模式中,实际剧本中的图像和CG鉴赏模式中显示的图像时使用。
FILETIME
参数:FILETIME name,year,month,day,hour,min,sec
例:
FILETIME "test.txt",%year,%month,%day,%hour,%min,%sec
功能:
获得此文件的修改日期。
CAPTION
参数:CAPTION name
例:
CAPTION "ウィンドウタイトル"
功能:
设定窗口标题的文字。
※请注意窗口标题在全屏模式下不可见。
这里显示的文字并不限于对所有的玩家来说都可见。
CLEARMOUSE
参数:CLEARMOUSE
例:
CLEARMOUSE
功能:
清空窗口所有的鼠标消息。
在此命令之前的所有的鼠标点击记录都会被抛弃。
DOEVENTS
参数:DOEVENTS
例:
DOEVENTS
功能:
处理消息,在循环的时候需要适时调用。
在书写GETCLICK或者GETMOUSE的消息处理循环的时候,如果不使用此命令的话则无法取得消息。
EXEC
参数:EXEC str
例:
EXEC 'CAPTION "変更"'
功能:
执行字符串中的命令。
GETCLICK
参数:GETCLICK l,r,w,ld,rd
例:
GETCLICK %l
GETCLICK %l,%r,%w
功能:
获得鼠标的输入。不必指定所有的变量。
从左到右为,松开左键,松开右键,滚轮,按下左键,按下右键。
※松开的基准是根据Windows的接口的一般调用来实现的。
※滚轮向上返回-1,向下返回1。
GETMOUSE
参数:GETMOUSE x,y
例:
GETMOUSE %x,%y
功能:
获得鼠标的坐标。在窗口外则返回-1,-1。
SETCLIPBOARD
参数:SETCLIPBOARD str
例:
SETCLIPBOARD "cliptext"
功能:
设置剪切板中的文字。
例如,程序需要实现在选择图像的时候,将显示图像的指令复制到剪切板中的功能。
SETMOUSE
参数:SETMOUSE x,y
例:
SETMOUSE 400,300
功能:
将鼠标移动到指定的位置。
OKBOX
参数:OKBOX text,caption
例:
OKBOX "对话框内容","对话框标题"
功能:
显示一个有OK按钮的对话框,在按下OK按钮之后脚本才会继续执行。
RESETTIMER
参数:RESETTIMER
例:
RESETTIMER
功能:
重置内部的计时器。GETTIMER()和WAITTIMER()都是以此为起点计算时间的。
WAITTIMER
参数:WAITTIMER milisecond
例:
WAITTIMER 1000
功能:
等待从RESETTIMER命令开始执行算起的时间。用于实现动画。
SETSCREEN
参数:SETSCREEN screenflag
例:
SETSCREEN 1
功能:
设置显示的模式。0为窗口模式。
1为全屏模式(分辨率变化)
2为全屏模式(保持纵横比扩大)
SHELL
参数:SHELL str
例:
SHELL "readme.txt"
SHELL "http://www.nscripter.com/"
功能:
在Shell中打开指定的文件或者访问指定的网页。
YESNOBOX
参数:YESNOBOX ret,text,caption
例:
YESNOBOX %ret,"要覆盖该存档吗?","存档覆盖确认"
功能:
显示一个YES或者NO的对话框。是的话变量返回1,否的话返回0.
GETCONFIG
参数:GETCONFIG(key)
例:
%value=GETCONFIG("configkey")
功能:
从ini文件中读取设定。返回指定的键值(key)对应的字符串。
GETKEY
参数:GETKEY(keystr)
例:
%ret=GETKEY("C")
>%ret=GETKEY("CTRL")
%ret=GETKEY(" ")
功能:
对应按键被按下则返回1,松开则返回0。
按键对应的字符串是英文大写字母,列表如下。
" "或者"SPACE" 空格键
”ESC“ Esc键
"CTRL" 控制键
"UP""DOWN""LEFT""RIGHT" 光标键
"F1"~"F12" 功能键
"RETURN" "ENTER" 回车键
"PAGEUP" "PAGEDOWN" 上翻/下翻键
"SHIFT" 上档键
"SCROLLLOCK" 锁屏滚动键(关闭状态返回0,打开状态返回1)
"NUMLOCK" 数字键盘锁定键(关闭状态返回0,打开状态返回1)
"CAPSLOCK" 大小写锁定键(关闭状态返回0,打开状态返回1)
"LBUTTON" 鼠标左键
"RBUTTON" 鼠标右键
"MBUTTON" 鼠标中键
GETSCREEN
参数:GETSCREEN()
例:
%screenmode=GETSCREEN()
功能:
获得当前的屏幕模式。0为窗口,1位全屏。
GETTIMER
参数:GETTIMER()
例:
%tm=GETTIMER()
功能:
获得自RESETTIMER开始经过的时间(毫秒)。
LCLICKED
参数:LCLICKED()
例:
%clicked=LCLICKED()
功能:
存在还未处理的左键点击则返回1,否则就返回0。
TIME
参数:TIME year,month,day,hour,min,sec
例:
TIME %year,%month,%day,%hour,%min,%sec
功能:
获得当前的时间。
MOVIE
参数:MOVIE filename,clickskipflag,volume
例:
MOVIE "op.mpg",1
功能:
用整个窗口播放影片。点击跳过标志开启的话可以点击左键跳过。
点击跳过标志和音量都可以省略。省略音量的话则音量和BGM相同。
※对于透明的影片会无视透明设定保持原样播放,请注意。
透明的影片并不会让纹理(精灵的)透过而显示出来。
BEEP
参数:BEEP freq,mili
例:
BEEP
功能:
频率(freq)和毫秒数(mili)都可以省略。freq为频率,mili为持续的毫秒数。
CCAPTION
参数:CCAPTION titlestr
例:
CCAPTION "NScripter2 控制台"
功能:
设定控制台的窗口标题。
CCLEAR
参数:CCLEAR
例:
CCLEAR
功能:
清空控制台。(清除所有画面上的文字)
CCLOSE
参数:CCLOSE
例:
CCLOSE
功能:
关闭控制台窗口。
CCOLOR
参数:CCOLOR cr,cg,cb,br,bg,bb,ci,bi
例:
CCOLOR 1,0,1,0,0,1
功能:
参数可以从任何地方开始省略。
设置控制台的颜色。cr,cg,cb,ci是文字颜色,br,bg,bb,bi是背景颜色。
rgb为红绿蓝,i为颜色浓度。0为最稀,1位最浓。
CGETCURSOR
参数:CGETCURSOR x,y
例:
CGETCURSOR %x,%y
功能:
获得控制台中光标的坐标。
CGETSIZE
参数:CGETSIZE w,h
例:
CGETSIZE %w,%h
功能:
获得控制台横向和纵向容纳的字符数。
CLOCATE
参数:CLOCATE x,y
例:
CLOCATE 10,2
功能:
设置控制台光标的位置。
COPEN
参数:COPEN
例:
COPEN
功能:
打开控制台窗口。
即使不使用此命令,在执行控制台输入和输出命令的时候也会自动打开控制台。
CPRINT
参数:CPRINT a,b,c,...
例:
CPRINT "要显示的字符串。"
功能:
向控制台输出字符串。最后会加上换行符。
可以传入多个参数。如果指定多个参数,会将它们连续输出。
CSETSIZE
参数:CSETSIZE w,h
例:
CSETSIZE 80,25
功能:
设定控制台窗口横向和纵向容纳的字符数。
CSETTEXT
参数:CSETTEXT str,x,y,cr,cg,cb,br,bg,bb,ci,bi
例:
CSETTEXT "あいうえお",3,3,1,1,1,0,0,0,1,1
功能:
在指定的位置输出指定的字符串。
参数的意义请参考CLOCATE和CCOLOR命令。
CWRITE
参数:CWRITE a,b,c,...
例:
CWRITE "不换行输出字符串。"
功能:
和CPRINT命令相同,唯一的区别是不换行。
SLEEP
参数:SLEEP miliwait
例:
SLEEP 1000
功能:
停止指定的时间(毫秒)。
因为停止的时候不会进行精灵动画和消息的处理,所以请不要长时间的停止。
SYSTEM
参数:SYSTEM str
例:
SYSTEM "pause"
功能:
在命令提示符下执行指定的命令。
CINKEY
参数:CINKEY()
例:
%key=CINKEY()
功能:
从控制台获取一个字符。
F1 CTRL DOWN ESC RETURN PAGEUP PAGEDOWN
等特殊按键也会返回对应的字符串。
没有读取到输入的时候返回#NIL。
CREAD
参数:CREAD()
例:
%str=CREAD()
功能:
从控制台读入一个字符串。
ISDEF
参数:ISDEF(val)
例:
%isfirst=ISDEF(_first)
功能:
如果该变量已被定义则返回1,没有则返回0。
一般来说,访问没有定义的变量会导致错误,而这个函数不会。
例子中的代码用于检查系统变量_first是否定义。
在程序第一次启动的时候(即任何变量都没有定义)返回值都是0,在进行设定(configure)的时候,用于预先设定。
(这个时候请不要忘记对_first进行定义。)
SPLIT
参数:SPLIT str,delchr,val1,val2,...
例:
SPLIT "あいうえお/かきくけこ/さしすせそ","/",%v1,%v2,%v3>
功能:
根据指定的字符将字符串分割至若干个变量中,对应的字符串不存在的话会代入""。
例子的情况中,%v1="あいうえお",%v2="かきくけこ",%v3="さしすせそ"。
SPLITA
参数:SPLITA str,delchr,val
例:
SPLITA "あいうえお/かきくけこ/さしすせそ","/",%v
功能:
根据指定的字符将字符串分割至一个数组中。数组最后一个元素会被赋值#NIL。
例子的情况中,%v[0]="あいうえお",%v[1]="かきくけこ",%v[2]="さしすせそ",%v[3]=#NIL。
STRSAVE
参数:STRSAVE filename,str
例:
STRSAVE "savefile.txt","Hello World!"
功能:
将指定的字符串保存到指定的文本文件中。
STRLOAD
参数:STRLOAD(filename)
例:
%str=STRLOAD(filename)
功能:
读取文本文件,返回对应的字符串。
VCLEAR
参数:VCLEAR val
例:
VCLEAR v
功能:
清除指定的变量,数组,或者结构体。
例子中的代码会清除诸如数组(v[0] v[1] 或者v[0][1])或者结构体(v.param1,v.name)等等。
VCOPY
参数:VCOPY dest,src
例:
VCOPY %dest,%src
功能:
将src指定的变量,数组,或者结构体复制到dest指定的对应结构去。
例子中的代码会将%src[0],%src[1]...%src.param1 %src.name等复制到%dest[0],%dest[1]...%dest.param1 %dest.name中去。
RANDOMSEED
参数:RANDOMSEED num
例:
RANDOMSEED 0
功能:
初始化随机数种子。指定0的话则每次的种子都不一样。
两次都指定0以外的数话,都会生成同样的随机数列。
※以下的数学函数在C语言和Lua中都是同名的,功能也类似。看到名字就知道其作用,由此不再赘述。
ABS(x) ACOS(x) ASIN(x) ATAN(x) ATAN2(y,x) CEIL(x) COS(x)
COSH(x) DEG(rad) EXP(x) FLOOR(x) LOG(x) LOG10(x)
RAD(deg) SIN(x) SINH(x) SQRT(x) TAN(x) TANH(x)
※下面解释来自BASIC以及不容易理解的函数。
PI
参数:PI()
例:
功能:
返回圆周率。
ASC
参数:
例:ASC(chr)
ASC(" ")
功能:
获得该字符的ASCII码。
CHR
参数:CHR(chrcode)
例:
CHR(13)
功能:
由ASCII码获得字符。
JOIN
参数:JOIN(delchr,a,b,...)
例:
%str=JOIN("/","あいうえお","かきくけこ","さしすせそ")
功能:
和SPLIT相反,将字符串用指定字符连接。
上例中,返回"あいうえお/かきくけこ/さしすせそ"。
JOINA
参数:JOINA(delchr,val)
例:
%str=JOINA("/",%v)
功能:
和SPLIT相反,将数组用指定字符连接。
其中%v[0]="あいうえお" %v[1]="かきくけこ" %v[2]="さしすせそ" %v[3]=#NIL(可以是未定义或者数值)。
上例中,返回"あいうえお/かきくけこ/さしすせそ"。
LCASE
参数:LCASE(chr)
例:
%c=LCASE("ABC")
功能:
返回小写字母。上例中返回"abc"。
LEFT
参数:LEFT(str,num)
例:
%str=LEFT("string",3)
功能:
将字符串从左截取指定的字符数。
上例中%str="str"。
LEN
参数:LEN(str)
例:
%l=LEN("abcde")
功能:
返回字符串的长度,上例中%l=5。
LTRIM
参数:LTRIM(str)
例:
%str=LTRIM(" string ")
功能:
删除字符串左边的空格,不删除右边的空格。
例子中%str="string "。
MID
参数:MID(str,start,num)
例:
%str=MID("abcdefg",2,3)
功能:
从指定位置开始截取指定数目的字符。
第一个字符从0开始。例子中%str="cde"。
NUM
参数:NUM(str)
例:
%n=NUM("100")
功能:
将字符串转换为数值。上例中%n=100。
RANDOM
参数:RANDOM()
例:
%r=RANDOM()
功能:
用于生成随机数。返回0~2的32次-1的整数。
比如要生成0~99的整数,%r=RANDOM() mod 100。
比如要生成1~6的整数,%r=RANDOM() mod 6 + 1。
REPLACE
参数:REPLACE(str,from,to)
例:
%str=REPLACE("abcdefghi","def","ZZZ")
功能:
替换字符串。例子中%str为"abcZZZghi"。
REGEX_REPLACE
参数:REGEX_REPLACE(str,regex,repstr)
例:
%str=REGEX_REPLACE("abc123def","[0123456789]","Z")
功能:
根据正则表达式替换字符串。例子中%str为"abcZZZdef"。
RIGHT
参数:RIGHT(str,num)
例:
%str=RIGHT("abcdef",3)
功能:
从字符串右端截取指定数目的字符。例子中%str为"def"。
RTRIM
参数:RTRIM(str)
例:
%str=RTRIM(" string ")
功能:
删除字符串右边的空格。不会删除左边的空格。
上例中的%str=" string"。
SEARCH
参数:SEARCH(str,findstr)
例:
%s=SEARCH("abcdefghi","def")
功能:
在字符串中搜索指定的字符串,返回第一个字符的位置。未找到则返回-1。
上例中%s=3。(第一个字符位置为0。)
SGN
参数:SGN(n)
例:
%s=SGN(-100)
功能:
参数为负数返回-1,正数返回1。0则返回0。例子中返回-1。
STR
参数:STR(n)
例:
%str=STR(12345)
功能:
将参数转换为字符串。上例中%str="12345"。
STRF
参数:STRF(formatstr,n)
例:
%str=STRF("%3d",12)
功能:
将数值格式化输出。
整数和小数的输出和C语言的printf的格式化字符串相同。
例子中,%str=" 12"。(用空白补齐为三个空位并右对齐)
TRIM
参数:TRIM(str)
例:
%str=TRIM(" string ")
功能:
删除字符串两端的空格。上例中%str="string"。
TYPE
参数:TYPE(val)
例:
%t=TYPE(123)
功能:
返回参数的值类型。上例中%t=#NUMBER。
字符串返回%t=#STRING。#NIL返回#NIL。
UCASE
参数:UCASE(str)
例:
%s=UCASE("abc")
功能:
转换为大写字母。例子中%s="ABC"。
VLBOUND
参数:VLBOUND(val)
例:
%start=VLBOUND(%v)
功能:
获得数组最小非空元素的下标。也能正确作用于稀疏构造的数组。
例子中,%v的最小非空元素为3。例如,%v[3]="abc",%v[12]="def"....。则%start=3。
因为要搜索所有的数组元素,所有没有比较快的函数。
VLEN
参数:VLEN(val)
例:
%vlen=VLEN(%v)
功能:
获得数组的长度。不能正确地作用于稀疏构造的数组。
下标从0开始,最后一个找到的下标+1则是数组长度。
VUBOUND
参数:VUBOUND(val)
例:
%end=VUBOUND(%v)
功能:
获得数组最大非空元素的下标。也能正确作用于稀疏构造的数组。
因为要搜索所有的数组元素,所有没有比较快的函数。
ZENKAKU
参数:ZENKAKU(str)
例:
%str=ZENKAKU("abc")
功能:
将字符串转换为全角字符。上例中返回"abc"。
这里,BASIC内部使用的是UTF-8编码,请注意。
当字符串是从外部工具获取的时候,有必要对其进行转码。
位图是“储存在内存中”的图像数据。
其中包含了对位图进行渲染处理,以及从位图转换到纹理的命令。
总之,位图功能是用来对内存中的图像进行加工和保存的命令(以及函数)的集合。
BBEGIN
参数:BBEGIN bmpname
例:
BBEGIN "scrbmp"
功能:
开始对指定的位图进行描画操作。初始位图为黑色透明的区域。
位图的尺寸大小需要事先制作好。
BCREATE
参数:BCREATE bmpname,w,h
例:
BCREATE "scrbmp",800,600
功能:
生成指定名称,指定大小的空白位图。
BDELETE
参数:BDELETE bmpname
例:
BDELETE "scrbmp"
功能:
删除指定名称的位图。
BDUP
参数:BDUP new,old
例:
BDUP "copybmp","sourcebmp"
功能:
从指定的位图复制生成一个新的位图。
BEND
参数:BEND bmpname
例:
BEND "scrbmp"
功能:
停止对位图的操作。执行此命令后会将数据生成为BMP文件。
只有执行这个命令之后,位图的改变才会被显示出来。
BFILL
参数:BFILL bmpname,color
例:
BFILL "bmp",#FFFFFFFF
功能:
用指定的颜色填充位图。
BFORMAT
参数:BFORMAT bmpname,str,opt,rubyopt
例:
BFORMAT "scrbmp","あいうえおかきくけこ{漢字/ルビ}さしすせそ",{font="text",x=2,y=2,w=25,h=4},{font="ruby"}
功能:
在使用英语等不需要注音功能的时候可以省略rubyopt参数。
此命令用于向位图中写入字符串。opt和rubyopt参数类似SOFORMAT命令。
BFRECT
参数:BFRECT bmpname,x1,y1,x2,y2,color
例:
BFRECT "scrbmp",100,100,200,200,#FFFFFFFF
功能:
向位图中插入一个左上(x1,y1)到右下(x2,y2)的矩形。
BFROMT
参数:BFROMT bmpname,texname
例:
BFROMT "bmp","tex"
功能:
从指定的纹理创建一个位图。
BGETSIZE
参数:BGETSIZE bmpname,w,h
例:
BGETSIZE "scrbmp",%w,%h
功能:
获得位图的宽和高。
BGRADATION
参数:BGRADATION bmpname,color1,color2,flagx,flagy
例:
功能:
用渐变颜色填充位图。
flagx和flagy是用于确定在x方向还是y方向上进行渐变。
在某个方向上设置为true就会在该方向上渐变,两个都true或者两个都false会生成斜向的渐变。(true和false方向不同)
BJOINX
参数:BJOINX bmpname,bmpname2
例:
BJOINX "bmp","bmp2"
功能:
在bmpname的右边接上bmpname2生成新的bmpname。
BJOINY
参数:BJOINY bmpname,bmpname2
例:
BJOINY "bmp","bmp2"
功能:
在bmpname的下面接上bmpname2生成新的bmpname。
BLOAD
参数:BLOAD bmpname,filename
例:
BLOAD "scrbmp","testbg.png"
功能:
读取指定的对象中到位图中。
BMONOTONE
参数:BMONOTONE bmpname,color
例:
BMONOTONE "scrbmp",#FFFF0000
功能:
根据指定的颜色单色化位图。(译注:褐色照片效果。)
BNEGA
参数:BNEGA bmpname
例:
BNEGA "scrbmp"
功能:
反转位图的颜色。(译注:底片效果。)
BRESIZE
参数:BRESIZE bmpname,w,h
例:
BRESIZE "scrbmp",100,100
功能:
扩大或者缩小位图。
用于调整屏幕截图的大小。
BREVERSE
参数:BREVERSE bmpname,flagx,flagy
例:
BREVERSE "scrbmp",1,0
功能:
根据参数x方向上或者y方向上翻转位图。
BSAVE
参数:BSAVE bmpname,savefilename
例:
BSAVE "scrbmp","save.png"
功能:
将位图保存为PNG文件。
用于保存屏幕截图等功能。
BTRIM
参数:BTRIM bmpname,x1,y1,x2,y2
例:
BTRIM "scrbmp",100,100,200,200
功能:
截取位图指定坐标区域的部分。
SOUND
参数:SOUND sndname
例:
SOUND "bgsound"
功能:
新增一个声道。
SPLAY
参数:SPLAY sndname,playtable
例:
SPLAY "bgsound",{name="test.ogg"}
SPLAY "bgsound",{name="test.ogg",loop=1}
SPLAY "bgsound",{name="test.ogg",volume=-100,loop=1}
SPLAY "bgsound",{name="test.ogg",volume=-100,pan=-10000}
功能:
在指定声道播放声音。
SDELETE
参数:SDELETE sndname
例:
SDEKETE "bgsound"
功能:
删除声道。删除声道的时候并不会停止在当前声道播放的声音。
(此功能只用于再次创建一个声道。)
SFADEOUT
参数:SFADEOUT sndname,time
例:
SFADEOUT "bgsound",1000
功能:
经过指定的时间之后对声音进行淡出处理。
高级功能中的淡出是“指定淡出的时间”,而此处是指定淡出开始的时间。
SPAN
参数:SPAN sndname,pan
例:
SPAN "bgsound",-10000
功能:
对指定的声道进行偏移(pan)(偏向左声道或者右声道)处理。pan值-10000为最左,10000为最右。
SPAUSE
参数:SPAUSE sndname
例:
SPAUSE "bgsound"
功能:
暂停指定的声道。使用SREMUSE命令可以继续播放。
SRESUME
参数:SRESUME sndname
例:
SRESUME "bgsound"
功能:
继续播放由SPAUSE停止的声道。
SSTOP
参数:SSTOP sndname
例:
SSTOP "bgsound"
功能:
停止声道上的声音播放。关闭声音文件,但是声道本身会保留下来。
SVOLUME
参数:SVOLUME sndname,vol
例:
SVOLUME "bgsound",-10000
功能:
变更指定声道的音量。-10000为静音,0为最大。
实际情况中-1000就听不到声音也是有的,所以要在实际中尝试。
SISPLAYING
参数:SISPLAYING(sndname)
例:
%p=SISPLAYING("bgsound")
功能:
确定该声道是否在播放声音,是则返回1,否则返回0。
注意:循环播放声音的声道总是会返回1。
GBEGIN
参数:
例:
GBEGIN
功能:
开始对画面进行绘制。只有在此命令和GEND命令之间的命令才会被反映在画面上。
高级绘制功能(精灵功能)是在内部调用此命令。
SPDRAW
参数:
例:
SPDRAW
功能:
绘制所有的精灵。此命令是初级命令请在打算同时显示所有精灵的时候使用。
GEND
参数:
例:
GEND
功能:
停止绘制过程。执行此命令后绘制结果会反映在画面上。
TBEGIN
参数:TBEGIN texname
例:
TBEGIN "scrtex"
功能:
开始对纹理的绘制。
TEND
参数:
例:
TEND
功能:
结束对纹理的绘制。
TBEZIER
参数:TBEZIER texname,cx,cy,xs,ys,rot,a,x0,y0,x1,y1,x2,y2,x3,y3,sx0,sy0,sx1,sy1,sx2,sy2,sx3,sy3,sx4,sy4,sx5,sy5,sx6,sy6,sx7,sy7
例:
功能:
对纹理进行贝塞尔变换。参数的顺序和SPBEZIER相同。
先是指定旋转扩大缩小,剩下的部分0~1和SPBEZIER相同。
TDELETE
参数:TDELETE texname
例:
TDELETE "scrtex"
功能:
删除纹理。
TDRAW
参数:TDRAW texname,x,y,a
例:
TDRAW "spaceship",100,100,255
功能:
将纹理绘制在画面指定位置。
TDRAWLT
参数:TDRAWLT texname,cx,cy,xs,ys,rot,alpha
例:
TDRAWLT "spaceship",200,200,1.0,1.0,RAD(45),255
功能:
对纹理进行旋转扩大缩小。
TDRAWTR
参数:TDRAWTR name,v
例:
%v[0]=100
%v[1]=100
%v[2]=0
%v[3]=0
%v[4]=0xFFFFFFFF
%v[5]=200
%v[6]=200
%v[7]=1
%v[8]=1
%v[9]=0xFFFF00FF
%v[10]=100
%v[11]=200
%v[12]=0
%v[13]=1
%v[14]=0xFFFFFF00
TDRAWTR "testtex",%v
功能:
指定三角形的三个顶点,对相应的多边形绘制纹理。
数组的每元素对应一个顶点。(x, y, u, v, col)。顶点数必须是三的倍数。(因为每三个顶点绘制一个三角形。)
TFILL
参数:TFILL texname,color
例:
TFILL "scrtex",0xFFFFFFFF
功能:
向指定的纹理填充指定颜色。
TFORMAT
参数:TFORMAT name,str,opt,rubyopt
例:
TFORMAT "tex","あいうえおかきくけこ{漢字/ルビ}さしすせそ",{font="text",x=2,y=2,w=25,h=4},{font="ruby"}
功能:
在处理如英文文字用不到注音功能的时候可以省略rubyopt参数。
向纹理上写入字符串。opt和rubyopt参数和SPFORMAT相同。
TFRECT
参数:TFRECT name,lx,ly,rx,ry,color
例:
TFRECT "tex",100,100,200,200,0xFFFFFFFF
功能:
向纹理的指定区域中填充颜色。
TFROMB
参数:TFROMB texname,bmpname
例:
TFROMB "tex","bmp"
功能:
由位图生成纹理。
TGETSIZE
参数:TGETSIZE texname,w,h
例:
TGETSIZE "tex",%w,%h
功能:
获得纹理的大小。
TLOAD
参数:TLOAD texname,filename
例:
TLOAD "tex","test.jpg"
功能:
载入文件作为纹理。
TSAVE
参数:TSAVE texname,filename
例:
TSAVE "tex","savefile.png"
功能:
将纹理保存为文件。文件格式只能是PNG。
TISPLAYING
参数:TISPLAYING(texname)
例:
%p=TISPLAYING("movtex")
功能:
播放动画纹理的时候,动画在播放则返回1,否则返回0。
GBEZIER
参数:GBEZIER x1,y1,x2,y2,x3,y3,x4,y4,col
例:
GBEZIER 0,100,10,80,90,80,100,100,#FFFFFFFF
功能:
绘制贝赛尔曲线。x1,y1为起点,x4,y4为终点,x2,y2为点1的控制点,x3,y3为点2的控制点。
GBLEND
参数:GBLEND num
例:
GBLEND 0
功能:
切换渲染绘制模式。0表示通常α渲染,1为叠加渲染。
以后会考虑增加功能。
GCIRCLE
参数:GCIRCLE x,y,r,col
例:
GCIRCLE 100,100,35,#FFFFFFFF
功能:
绘制圆。
GELLIPSE
参数:GELLIPSE x1,y1,x2,y2,col
例:
GELLIPSE 100,100,200,200,#FFFFFFFF
功能:
绘制以x1,y1为左上,x2,y2为右下的长方形的内接椭圆。
GFCIRCLE
参数:GFCIRCLE x,y,r,col
例:
GFCIRCLE 100,100,35,#FFFFFFFF
功能:
绘制填充圆。
GFELLIPSE
参数:GFELLIPSE x1,y1,x2,y2,col
例:
GFELLIPSE 100,100,200,200,#FFFFFFFF
功能:
绘制以x1,y1为左上,x2,y2为右下的长方形的内接填充椭圆。
GRECT
参数:GRECT x1,y1,x2,y2,col
例:
GRECT 100,100,200,200,#FFFFFFFF
功能:
绘制左上为x1,y1,右上为x2,y2的长方形。
GFRECT
参数:GFRECT x1,y1,x2,y2,col
例:
GFRECT 100,100,200,200,#FFFFFFFF
功能:
绘制左上为x1,y1,右上为x2,y2的填充长方形。
GLINE
参数:GLINE x1,y1,x2,y2,col
例:
GLINE 100,100,200,200,#FFFFFFFF
功能:
绘制连接x1,y1和x2,y2的直线。
GLINES
参数:GLINES array,col
例:
a[0]=100
a[1]=100
a[2]=200
a[3]=200
a[4]=300
a[5]=300
GLINES a,#FFFFFFFF
功能:
绘制折线,坐标由数组指定。
GLINEL
参数:GLINEL array,col
例:
a[0]=100
a[1]=100
a[2]=200
a[3]=200
a[4]=300
a[5]=300
a[6]=300
a[7]=300
GLINEL a,#FFFFFFFF
功能:
绘制直线列。坐标由数组指定。由于是起点终点构成一条直线,所以数组元素个数必须是4的倍数。
GPOINT
参数:GPOINT x,y,col
例:
GPOINT 125,125,#FFFFFFFF
功能:
绘制点。
GPOINTL
参数:GPOINTL array,col
例:
a[0]=100
a[1]=100
a[2]=200
a[3]=200
GPOINTL a,#FFFFFFFF
功能:
绘制点列表。坐标由数组指定。
GTRIANGLE
参数:GTRIANGLE x1,y1,x2,y2,x3,y3,col
例:
GTRIANGLE 100,100,200,200,300,100,#FFFFFFFF
功能:
绘制填充的三角形。
GTRIANGLEL
参数:GTRIANGLEL array,col
例:
a[0]=100
a[1]=100
a[2]=200
a[3]=200
a[4]=300
a[5]=100
a[6]=400
a[7]=100
a[8]=500
a[9]=200
a[10]=600
a[11]=100
GTRIANGLEL a,#FFFFFFFF
功能:
绘制填充三角形列表。
数组每6个元素构成一个三角形的三个顶点。
GTRIANGLEF
参数:GTRIANGLEF array,col
例:
a[0]=100
a[1]=100
a[2]=200
a[3]=200
a[4]=300
a[5]=100
a[6]=0
a[7]=0
GTRIANGLEF a,#FFFFFFFF
功能:
绘制三角形构成的扇形。
最初点为中心点,之后的点为扇形顶点。
GTRIANGLES
参数:GTRIANGLES array,col
例:
GTRIANGLES a,#FFFFFFFF
功能:
绘制连续三角形(strip)。
TRANSITION
参数:TRANSITION frombmpname,tobmpname,rate,type,opt,...
例:
TRANSITON "from","to",0.7,#F
功能:
由两张位图生成变换中图像。rate为变换率(0为from,1为to)。
TRAP
参数:TRAP label,trigger
例:
TRAP @logo_end
TRAP @logo_end,"L"
TRAP @logo_end,"LR"
TRAP @logo_end,"LRS"
TRAP @logo_end,"LRSE"
TRAP #NIL
功能:
执行TRAP处理的时候等待鼠标点击或者按键后陷入,然后类似GOTO跳转到指定的标签。
想在任何时候都能够通过点击跳过商标的时候使用此功能。
指定标签为#NIL会解除指定的陷入。如果不解除该陷入会一直有效,所以请记得解除。
第二个参数为陷入条件。省略默认为"LRSE"。
L=左键点击,R=右键点击,S=空格,E=回车键。