AS3 - 在已旋转的MovieClip中查找localToGlobal点

时间:2016-03-03 23:04:19

标签: actionscript-3 flash flex air adobe

我在一个bgMC内部有一个敌人MC,敌人的MC类检测到一个点并对该点落入敌人MC内的位置作出反应。

一切正常,但是一旦我在bgMC内部旋转敌人MC,那时我就会遇到问题而不是我想要的那个......

enemyMC位于gameMC中的bgMC内部:

这是我的“gameMC”类中放置子弹的代码

    pointEnemy.x = (bulletPoint.x - this.x - bg.x - (enemyMC.x * 2 )) * 0.5 / enemyMC.scaleX ;
    pointEnemy.y = (bulletPoint.y - this.y - bg.y - (enemyMC.y * 2 )) * 0.5 / enemyMC.scaleY ;

enemyMC.hurt(pointEnemy);

这就是敌人MC内部的伤害功能:

function hurt(point:Point)
{
   local = localToGlobal(point);
   if(main.hitTestPoint(local.x, local.y, true))
   {
      trace("HIT!");
   }        
}

现在,如果我在bgMC中旋转enemyMC ......整个点x / y系统被抛弃。 我想知道我应该寻找哪个轮换代码? COS? ACOS?晒黑?晒黑?我对AS3的角度很新。

我希望对pointEnemy的调用有一些修正:

pointEnemy.x = (bulletPoint.x - this.x - bg.x - (enemyMC.x * 2 )) * 0.5 / enemyMC.scaleX;

并添加“+ enemyMC.rotation”?我知道这不起作用,但希望你们可以帮我一个可能的代码。

0 个答案:

没有答案