MovieClip对齐(具有多个状态的字符),不使用meta-MovieClip

时间:2013-01-04 15:35:12

标签: actionscript-3 flash flash-cs6

我正在制作一个游戏,屏幕上有4个字符,每个字符都有几个不同的状态和相应的MovieClip,所以我的库看起来像这样:

角色1:
  IdleAnimation
  SleepAnimation
  ..
人物2:
  IdleAnimation
  SleepAnimation
  ..

每个动画(由第三方提供)具有不同的锚点,因此当角色A在屏幕上的位置100,100并且从空闲动态移动到睡眠动画时,由于锚点,他突然向右跳跃20个像素点。

通常我会将一个MovieClip中的所有不同状态存储在不同的帧中,并手动调整每个状态的位置,直到它们匹配为止,但是我也尝试将其移植到Android,因此必须保留屏幕上的子项数立刻降到最低。

除了存储每个角色和每个动画的偏移x和y值之外,还有什么我可以做的,只要状态发生变化,就可以通过代码简单地设置x / y吗?

1 个答案:

答案 0 :(得分:0)

为了让numChildren保持不变,我猜你别无选择

但是要跟踪每个角色的动画的x和y偏移

可能存储在{state:registration_point}形式的Object变量中。

然后在更改状态时,您可以设置注册点

通过Emanuel Feronato的这种方法:

http://www.emanueleferonato.com/2010/08/04/changing-a-movieclip-registration-point-on-the-fly-with-as3/

尝试的一个想法是简单地将注册点放在每个动画状态的中心:

    var reg_x:Number = mc.width / 2;
    var reg_y:Number = mc.height / 2;