如果父级也旋转,则嵌套的动画片段旋转不起作用

时间:2014-03-12 02:31:22

标签: actionscript-3 rotation nested parent encapsulation

我有一个坦克,它有一个名为Barrel的嵌套动画片段。

Barrel成功面对玩家,除非坦克本身旋转。

所以它只适用于水箱不旋转的情况。

我需要找到一种方法让旋转工作,我用Google搜索并找到:

var rot:Number = rotation, p:DisplayObjectContainer = parent, s:DisplayObjectContainer =     stage;
while (p != s) {
  rot += p.rotation;
  p = p.parent;
}

但我不知道如何在我当前的代码中实现它:

// calculate rotation based on target

            _dx = this.x - _root.hero.x;
            _dy = this.y - _root.hero.y;

// which way to rotate

            _rotateTo = getDegrees(getRadians(_dx, _dy));   

// keep rotation positive, between 0 and 360 degrees

            if (_rotateTo > barrel.rotation + 90) _rotateTo -= 360;
            if (_rotateTo < barrel.rotation - 90) _rotateTo += 360;

// ease rotation

            _trueRotation = (_rotateTo - barrel.rotation) /     _rotateSpeedMax;

//barrel rotation

            barrel.rotation += _trueRotation;   

我尝试过更改

barrel.rotation += _trueRotation;   

barrel.rotation += _trueRotation + parent.rotation

在线阅读后,您可以简单地添加所有旋转,但似乎无法正常工作。

如何实施

var rot:Number = rotation, p:DisplayObjectContainer = parent, s:DisplayObjectContainer =         stage;
while (p != s) {
  rot += p.rotation;
  p = p.parent;
}

进入我的代码?

1 个答案:

答案 0 :(得分:0)

您必须否定父级的轮换,因此您只需将+=更改为-=即可。

 rot -= p.rotation;