Projectile

为玩家创建一个飞行道具.
Projectile控制器携带了 HitDef 控制器的所有参数,用来控制飞行道具的HitDef.
此外,Projectile控制器有如下额外的参数.

注: projectile俗称"波""飞弹"等等,这里统一译作"飞行道具".HitDef直译为"击中定义".

必要参数:

可选参数:
ProjID = id_no (整型)
给此飞行道具指定ID号.设置为正数.

projanim = anim_no (整型)
指定飞行道具使用的动画动作号.缺省默认是0.

projhitanim = anim_no (整型)
指定飞行道具击中对手时的动画号.缺省默认为-1(不改变原有动画).

projremanim = anim_no (整型)
指定飞行道具被移除时的动画号(由于时间过期或者到达了它的移动边界,等等).
缺省默认为projhitanim的值.

projcancelanim = anim_no (整型)
指定飞行道具被另一个飞行道具削去时的动画.缺省默认为projremanim的值.

projscale = x_scale, y_scale (浮点型, 浮点型)
指定飞行道具的缩放系数.最终飞行道具的缩放效果被此参数和P1cns文件[Size]组中"proj.doscale"共同影响.
缺省默认为1,1(正常尺寸).

projremove = remove_flag (布尔型)
设置非0值使飞行道具在击中后移除,或者设置0阻止这个特征.默认是1.

projremovetime = remove_time (整型)
指定飞行道具在屏幕中将要被移除的时间帧数.(也就是remove_time后飞行道具被移除,相对于生命周期)
如果是-1,飞行道具将不会被移除.默认是-1.

velocity = x_vel, y_vel (浮点型, 浮点型)
指定飞行道具x和y方向的速度初始值.缺省默认是0,0.

remvelocity = x_vel, y_vel (浮点型, 浮点型)
指定当飞行道具被移除时x和y方向的速度.缺省默认为0,0.

accel = x_accel, y_accel (浮点型, 浮点型)
指定飞行道具x和y方向的加速度.缺省默认为0,0.

velmul = x_mul, y_mul (浮点型, 浮点型)
指定x和y方向速度的乘数.飞行道具的速度每帧都会乘以这个乘数.乘数缺省默认为1.

projhits = num_hits (整型)
指定飞行道具在被移除前能给予对手的hit数.默认是1.

projmisstime = miss_time (整型)
如果飞行道具设定了多次hit,miss_time指定了飞行道具hit的时间间隔帧数.默认为0.

projpriority = proj_priority (整型)
指定飞行道具的优先级.(俗称波的等级)
如果飞行道具与另一个相同优先级的飞行道具碰撞,他们将一起被削去.
如果与低优先级的飞行道具碰撞,将会削去低优先级的飞行道具,且那个高优先级的飞行道具,他的优先级将减去1.
默认为1.(与hitdef中攻击优先级定义(priority)不同,飞行道具的优先级没有指定范围)

projsprpriority = priority (整型)
指定飞行道具图像的优先级.高优先级图像会显示在低优先级图像上方.默认是3.

projedgebound = value (整型)
指定飞行道具被自动移除前远离屏幕边缘的距离.单位是像素.
默认为40(240p),80(480p),160(720p).

projstagebound = value (整型)
指定飞行道具被自动移除前远离舞台边缘的最大距离.
默认为40(240p),80(480p),160(720p).

projheightbound = lowbound, highbound (整型, 整型)
指定飞行道具能够到达的y方向坐标最大最小值.如果飞行道具离开这个边界,将会自动移除.
注意:因为减少y值会增加在屏幕上的高度,所以边界值下限实际指定的是飞行道具能到达的最高高度.
边界值下限默认为-240(240p), -480(480p), -960(720p).边界值上限默认是1(240p), 2(480p), 4(720p).

offset = off_x, off_y (整型, 整型)
指定飞行道具被创建时x和y方向的偏移量.缺省默认都为0.
飞行道具创建时的朝向总是和玩家一样.off_x与飞行道具所面对的方向有关.
offset的确切特征取决于postype.

postype = postype_string (字符串型)
postype_string指定了postype(位置类型)--如何解读相关位置的参数.
所有情况下,正的y偏移量表示向下的位移.所有情况下,off_y相对于玩家的位置.

有效的postype_string值如下:

projshadow = shadow (整型)
如果shadow非零值,将绘制飞行道具火花的阴影,否则不会.默认是0.

projshadow = shad_r, shad_g, shad_b (整型, 整型, 整型)
指定飞行道具影子的R,G,B数值分量.分量值应是[0,255]之间的整数.
如果shad_r计算出-1,则将使用舞台的影子颜色.
分量值越大,这种颜色在影子中显示的越少.所以纯黑色的影子是255,255,255.
默认为0,0,0.(没影子)

supermovetime = move_time (整型)
指定SuperPause(超级暂停)中飞行道具将不被冻结住的时间帧数.默认为0.

pausemovetime = move_time (整型)
指定Pause(暂停)中飞行道具将不被冻结住的时间帧数.默认为0.

ownpal = ownpal_flag (布尔型)
如果ownpal_flag为0,飞行道具颜色将被随后执行的自身的PalFX和RemapPal控制器影响.通常情况下这是默认值.
如果ownpal_flag为1,飞行道具颜色将不会被随后执行的自身的PalFX和RemapPal控制器影响.如果是从fightfx.air播放动画的,这是默认值.

remappal = dst_pal_grp, dst_pal_item (整型, 整型)
强制色表从飞行道具索引颜色图像重映射到指定的色表.
此参数仅当ownpal_flag为非0.
如果dst_pal_grp是-1,此参数将被忽略.默认-1,0.

afterimage.time = aftimg_time (整型)
见下方.

afterimage.length
见下方.

afterimage....
如果包含这些数值,将实现飞行道具的残影效果.
参数与AfterImage控制器中的一样,只是必须在前面加上"afterimage.".

注意:
helper创建的飞行道具将立刻被他的根级所有.
当在一个[Statedef -2]块中被执行同时此玩家有(执行)另一个玩家的状态和动画数据时飞行道具的HitDef特征是未定义的.

示例: