2

我正在开发一个游戏,屏幕上有 4 个角色,每个角色都有几个不同的状态和相应的 MovieClip,所以我的库看起来有点像这样:

字符 1:
IdleAnimation
SleepAnimation
..
字符 2:
IdleAnimation
SleepAnimation
..

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

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

除了存储每个角色和每个动画的偏移 x 和 y 值,并在状态发生变化时通过代码简单地设置 x/y 之外,我还能做些什么吗?

4

1 回答 1

0

为了让 numChildren 失望,我想你别无选择

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

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

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

通过 Emanuel Feronato 的这种方法:

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

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

    var reg_x:Number = mc.width / 2;
    var reg_y:Number = mc.height / 2;
于 2013-02-06T04:56:06.930 回答