Actionscript 3 如何在旋转的MovieClip上跟踪点?

Actionscript 3 如何在旋转的MovieClip上跟踪点?,actionscript-3,rotation,tracking,movieclip,point,Actionscript 3,Rotation,Tracking,Movieclip,Point,我有一个电影唇,它代表了我游戏中的一个角色。我想“创造子弹”从我的角色枪尖射出。问题是,当我的角色转身时,该点也围绕MovieClips轴旋转 是否可以轻松地跟踪该点,以便在同一位置动态创建新对象 我试图在我的角色中添加一个新的MC,初始位置在枪口处。在一些系统中,子对象“跟随”它们的父对象,但在这里似乎不起作用 有没有其他的“原生”方法,或者我只需要有一个相对于角色MovieClips原点的点的极坐标表示,并将MC旋转添加到θ,因此,我可以计算X和Y坐标?尝试和方法将坐标从角色moviecli

我有一个电影唇,它代表了我游戏中的一个角色。我想“创造子弹”从我的角色枪尖射出。问题是,当我的角色转身时,该点也围绕MovieClips轴旋转

是否可以轻松地跟踪该点,以便在同一位置动态创建新对象

我试图在我的角色中添加一个新的MC,初始位置在枪口处。在一些系统中,子对象“跟随”它们的父对象,但在这里似乎不起作用


有没有其他的“原生”方法,或者我只需要有一个相对于角色MovieClips原点的点的极坐标表示,并将MC旋转添加到θ,因此,我可以计算X和Y坐标?

尝试和方法将坐标从角色movieclip转换到其父对象。

尝试和方法将坐标从角色movieclip转换到其父对象。

使用枪设置电影剪辑(我假设它位于手臂末端?)使枪尖与枢轴点垂直

然后通过发射子弹的方法传递三个参数:枪MC的x和y位置及其当前角度

项目符号初始位置的代码可能如下所示:

public function CreateBullet(x,y:Number, degree:Number)
{
    // set start position
    this.x = x + ARMLENGTH*Math.cos((degree/180)*Math.PI);
    this.y = y + ARMLENGTH*Math.sin((degree/180)*Math.PI);
}
其中ARMLENGTH是从枢轴点到枪端的距离


有两个警告,Flash可能会在角度上做一些奇怪的事情,因此如果播放器的方向是向后的,您可能必须在CreateBullet()中使用反转角度来进行if语句。此外,如果您将gun MC作为角色的子角色,则可能必须在轴点所在的位置创建一个点,然后对其执行localToGlobal。这方面有一个很好的参考。

用枪设置电影剪辑(我假设它在手臂的末端?),使枪尖直接穿过枢轴点

然后通过发射子弹的方法传递三个参数:枪MC的x和y位置及其当前角度

项目符号初始位置的代码可能如下所示:

public function CreateBullet(x,y:Number, degree:Number)
{
    // set start position
    this.x = x + ARMLENGTH*Math.cos((degree/180)*Math.PI);
    this.y = y + ARMLENGTH*Math.sin((degree/180)*Math.PI);
}
其中ARMLENGTH是从枢轴点到枪端的距离


有两个警告,Flash可能会在角度上做一些奇怪的事情,因此如果播放器的方向是向后的,您可能必须在CreateBullet()中使用反转角度来进行if语句。此外,如果您将gun MC作为角色的子角色,则可能必须在轴点所在的位置创建一个点,然后对其执行localToGlobal。这有一个很好的参考。

简单数学简单数学假设枪在一边,将枢轴与枪管对齐会使球员更难旋转。我想到了这一点,但我猜如果枪在一边,转身/瞄准会“看起来很难看”,将枢轴对准枪管会使球员更难旋转。我想到了这一点,但我猜转身/瞄准会“看起来很丑”听起来像是我一直在寻找的东西。。。我明天会试试我一直在找的东西。。。我明天试试