每个对象定义下面都会跟一条或多条命令。它们会告诉对象该干什么,称作事件,例如移动或改变颜色。你可以认为每条命令都会影响对象的一个(或一组)变量;一条命令完成后,在下一条命令更改前,对象会保留变量的数值。对于未经命令更改的对象,其变量会使用默认值。
对象定义下面的命令看起来像:
_(event),(easing),(starttime),(endtime),(params...)
其中:
缓动的有效数值如下:
数值 | 描述 |
---|---|
0 | 线性:无缓动 |
1 | 缓出:变化先快后慢 |
2 | 缓入:变化先慢后快 |
3 | 二次缓入 |
4 | 二次缓出 |
5 | 二次缓入缓出 |
6 | 三次缓入 |
7 | 三次缓出 |
8 | 三次缓入缓出 |
9 | 四次缓入 |
10 | 四次缓出 |
11 | 四次缓入缓出 |
12 | 五次缓入 |
13 | 五次缓出 |
14 | 五次缓入缓出 |
15 | 正弦缓入 |
16 | 正弦缓出 |
17 | 正弦缓入缓出 |
18 | 指数缓入 |
19 | 指数缓出 |
20 | 指数缓入缓出 |
21 | 圆形缓入 |
22 | 圆形缓出 |
23 | 圆形缓入缓出 |
24 | 弹性缓入 |
25 | 弹性缓出 |
26 | 半弹性缓出 |
27 | 四分之一弹性缓出 |
28 | 弹性缓入缓出 |
29 | 回弹缓入 |
30 | 回弹缓出 |
31 | 回弹缓入缓出 |
32 | 弹跳缓入 |
33 | 弹跳缓出 |
34 | 弹跳缓入缓出 |
在特殊情况下,可以使用各种简写。
在(时间上)最后一条命令完成前,对象会保持活动,在这之后则会消失。如果你就想让物件原地留在屏幕上、不进行任何改变,可以使用渐变 (F) 命令。
使用命令设置精灵图/对象进行(事件)。
这些是所有对象都能用的基本命令。这些命令易于使用,只需要简单的计算。
_F,(easing),(starttime),(endtime),(start_opacity),(end_opacity)
影响 | 数值定义 | 默认值 |
---|---|---|
对象的透明度。 | 0 到 1,可使用小数。0 对应全透明,1 对应不透明。 | 1 |
其中:
举个例子,要在 1 秒内(从谱面开始后 1 秒起)将对象淡入为半透明,等待 2 秒,然后花 1 秒钟淡出,可以这么写:
Sprite,Pass,Centre,"Sample.png",320,240
_F,0,1000,2000,0,0.5
_F,0,4000,5000,0.5,0
如果我们就想让一个对象显示在屏幕上 2 秒钟,可以这么写:
Sprite,Pass,Centre,"Sample.png",320,240
_F,0,1000,3000,1,1
你也可以将第二行缩写成如下形式,对于这么写的原理会在简写章节阐释。
_F,0,1000,3000,1
M,(easing),(starttime),(endtime),(start_x),(start_y),(end_x),(end_y)
影响 | 数值定义 | 默认值 |
---|---|---|
对象在游玩区域中的位置。 | 一个 (x,y) 位置,指定如上,可使用小数。 | 在对象定义句中定义的位置。 |
其中:
举个例子,要将对象从屏幕左上角移动到右下角(假定图像宽度不足 200 像素,否则在端点处会出现弹入弹出现象)
Sprite,Pass,Centre,"Sample.png",320,240
_M,0,1500,6000,-110,-100,740,580
所以,
与移动命令相似,但只会更改 X 坐标,Y 坐标保持不变。举个例子,要将对象从屏幕左侧移动到右侧:
Sprite,Pass,Centre,"Sample.png",320,240
_MX,0,1500,6000,-110,740
所以,
与移动命令相似,但只会更改 Y 坐标,X 坐标保持不变。举个例子,要将对象从屏幕底部移动到顶部:
Sprite,Pass,Centre,"Sample.png",320,240
_MY,0,1500,6000,-100,580
所以,
这些是供对象使用的额外命令。这些命令真的很高级,因此在使用前请询问他人,自行尝试也行。
_S,<easing>,<starttime>,<endtime>,<start_scale>,<end_scale>
影响 | 数值定义 | 默认值 |
---|---|---|
对象与原图(对应文件中的)相比的相对大小。例如:对原大小为 100x100 像素的文件,若缩放系数为 2,则对象大小会变为 200x200 像素。缩放过程受对象原点影响(中心、左上角等等) | 对象原大小的系数,从 0 开始,可使用小数。 | 1 |
其中:
举个例子,要让对象(如背景)从无到有“放大”到原大小 5 倍:
Sprite,Pass,Centre,"Sample.png",320,240
_S,0,36500,37000,0,5
所以,
此命令与 S 命令相同,但 X 与 Y 方向缩放是单独指定的。
_V,(easing),(starttime),(endtime),(start_scale_x),(start_scale_y),(end_scale_x),(end_scale_y)
举个例子,要将对象宽度改为原宽度两倍,高度改为一半:
Sprite,Pass,Centre,"Sample.png",320,240
_V,0,36500,37000,1,1,2,0.5
所以,
_R,<easing>,<starttime>,<endtime>,<start_rotate>,<end_rotate>
影响 | 数值定义 | 默认值 |
---|---|---|
对象相对于原图像顺时针旋转的弧度值。 | 任意实数;负值对应逆时针,正值对应顺时针。超出 2*pi 的值将会继续旋转。 | 0 |
其中:
举个例子,要让对象从 -45 度旋转到 +45 度(45 度 = 0.785 弧度):
Sprite,Pass,Centre,"Sample.png",320,240
_R,0,47210,47810,-0.785,0.785
或者让对象逆时针旋转 4 周(4 周 = 8*pi 弧度 = 25.133 弧度):
Sprite,Pass,Centre,"Sample.png",320,240
_R,0,47210,47810,0,-25.133
_C,(easing),(starttime),(endtime),(start_r),(start_g),(start_b),(end_r),(end_g),(end_b)
影响 | 数值定义 | 默认值 |
---|---|---|
对象的虚拟光源颜色。对象像素的颜色以相减方式得出。 | 数字(字节)组成的颜色元组。三个值分别对应红色 (R)、绿色 (G) 与蓝色 (B),范围为 0 到 255。(0,0,0) 对应黑色,(255,255,255) 对应白色(原图像)。此命令不影响透明度。 | (255,255,255) |
其中:
举个例子,要让对象作为阴影(全黑)出现,然后淡入原有颜色:
Sprite,Pass,Centre,"Sample.png",320,240
_C,0,58810,59810,0,0,0,255,255,255
要让对象显示为黄色 (#cccc00
):
Sprite,Pass,Centre,"Sample.png",320,240
_C,0,58810,59810,CC,CC,0
参数命令与其他命令不同,其他命令可以看作沿持续跟踪的数值设置端点,而参数命令仅在对象活动时执行。也就是说,你不能在时间戳 1000 到 2000 间放一条命令,然后希望在时间 3000 时应用数值,即使对象的其他命令仍未完成也不行。
_P,(easing),(starttime),(endtime),(parameter)
其中 (parameter) 为如下之一:
例如,要将对象沿对角线翻转两秒,然后回到正常状态:
Sprite,Pass,Centre,"Sample.png",320,240
_P,0,60000,62000,H
_P,0,60000,62000,V
也有更复杂的命令,其本身没有实际作用。它们为其他事件的发生提供条件,并会在下列页面解释: