背景控制器
背景控制器操作一个内部计时器.计时器在每回合开始时从0开始计时.每个游戏帧增加1,
当计时器到达控制器起始的时间.则控制器变为激活状态,
当计时器到达控制器结束的时间.则控制器停用,
如果控制器指定了一个正的循环时间.则当循环时间到达时控制器的内部计时器将复位到0,
背景控制器必须以组的形式写在父级BGCtrlDef下,你能使用多个 BGCtrlDef将控制器分成几个组,
每个BGCtrlDef和背景控制器模块可以放置在DEF文件[BGDef]之内的任何位置,
这些模块的一般格式是: (格式类似StateDef)
-
[BGCtrlDef my_controller_name]
looptime = GLOBAL_LOOPTIME
ctrlID = DEFAULTID_1, DEFAULTID_2, ...
[BGCtrl my_controller_1]
type = CONTROLLER_TYPE
time = START_TIME, END_TIME, LOOPTIME
ctrlID = ID_1, ID_2, ...
(controller-specific parameters here)
[BGCtrl my_controller_2]
(等等)
GLOBAL_LOOPTIME指定一个时间帧数.在这个时间之后BGCtrlDef将复位它的内部计时器.以及他包含的所有BGCtrl内部计时器,
要禁止循环时间.设置为-1或者缺省,
DEFAULTID_1, DEFAULTID_2, 等等, 指定将被 没有指定自身ctrlID列表的BGCtrl 影响的 背景元素ID号,
你能为此参数列出最多10个ID号,如果此行缺省.则默认将影响所有背景元素,
START_TIME, END_TIME, LOOPTIME是指定的时间.在这个时间点背景控制器应分别开始激活.停止激活.复位它的内部计时器,
如果LOOPTIME缺省或设置为-1.则背景控制器将不会复位它的计时器,(他的计时器仍然可以被他父级BGCtrlDef复位.只要GLOBAL_LOOPTIME被指定)
背景控制器将在START_TIME和END_TIME中被连续激活,
START_TIME是必要参数.但如果缺省END_TIME则将会默认为和START_TIME的值一样,(因此控制器将仅被触发1帧)
ID_1, ID_2, 等等, 指定此控制器作用于的背景元素ID号,这个列表.如果指定.将覆盖BGCtrlDef中指定的默认列表,
ID最多能指定10个,
下面是BGCtrl类型和它们相关参数的列表:(大多数控制器和状态控制器相似)
-
null
如其名.此控制器什么也不做,主要用在调试中.当你想短时间使一个控制器无效同时又不想删掉这些代码.就用null.而不必在每行代码前加";",
把原来的控制器名称换成null同时在原来的名字前加";",此控制器没有其他参数,
-
Visible
value = visible_flag
设置元素的可见度状态,激活时.此控制器设置背景元素不可见(=0)或可见(=1),不可见的元素中.计时将不会停止,
(也就是说.在动画型元素中.即使在不可见的状态.动画仍将持续播放)
-
Enabled
value = enabled_flag
设置元素是否被'关闭'(暂时先用这个词吧,,,)
此控制器要么关闭(禁止)(=0)要么开启(解禁)(=1)背景元素的效果,
当一个元素被关闭.将是不可见的且它的计时间停止(所以.在动画型元素的情况下.任何动画将停止),
-
VelSet
x = vel_x
设置元素x方向速度,
y = vel_y
设置元素y方向速度,
此控制器将设置 被影响的背景元素 x/y方向速度 为指定的值,
速度单位是 像素/游戏帧,你能在x,y参数中指定1个或2个数值,
缺省任何一个.元素在此方向的速度将不变,
-
VelAdd
x = vel_incr_x
改变元素x方向速度,
y = vel_incr_y
改变元素y方向速度,
此控制器将增加 被影响的背景元素 x/y方向速度 指定的值,
你能在x,y参数中指定1个或2个数值,
缺省任何一个.元素在此方向的速度将不变,
-
PosSet
x = pos_x
设置元素x方向位置,
y = pos_y
设置元素y方向位置,
此控制器将设置 被影响的背景元素 x/y方向坐标 指定的值,
你能在x,y参数中指定1个或2个数值,
缺省任何一个.元素在此坐标方向的位置将不变,
-
PosAdd
x = x_displacement
替换元素x方向位置,
y = y_displacement
替换元素y方向位置,
此控制器将替换 被影响的背景元素 x/y方向坐标 指定的值,
你能在x,y参数中指定1个或2个数值,
缺省任何一个.元素在此坐标方向的位置将不变,
-
Anim
value = action_no
改变 受影响元素 显示的动画到指定动画号,
-
SinX
value = amplitude, period, offset
改变受影响元素正弦运动x方向的振幅.周期和相位偏移,
此参数效果和背景元素参数中的sin.x相同,
-
SinY
value = amplitude, period, offset
改变受影响元素正弦运动y方向的振幅.周期和相位偏移,
此参数效果和背景元素参数中的sin.y相同,