AS3相对点

时间:2011-08-21 20:35:53

标签: flash actionscript-3

所以我在舞台上有一个十字准线,我有一个嵌套子肢的敌人,当调用下面的函数时我想创建一个命中标记并将它作为一个孩子附加到敌人肢体但我该如何翻译十字准线对敌人肢体的X / Y位置记住肢体也可以旋转吗?任何帮助表示赞赏。

function _hit (e):void
{
    if (theEnemy.limb1.hitTestObject(crosshair)) {
        var theHit:HitMark = new HitMark();
        theHit.x = ?;
        theHit.y = ?;       
        theEnemy.limb1.addChild(theHit);
    }
}

1 个答案:

答案 0 :(得分:2)

显示对象内的鼠标坐标将为您旋转和翻译,假设您的十字准线跟随鼠标,您可以执行此操作:

var theHit:HitMark = new HitMark();
theHit.x = theEnemy.limb1.mouseX;
theHit.y = theEnemy.limb1.mouseY;
theEnemy.limb1.addChild(theHit);

如果没有,则必须使用globalToLocal()

var theHit:HitMark = new HitMark();
var globalHitPoint:Point = new Point(crosshair.x, crosshair.y);
var localHitPoint:Point = theEnemy.limb1.globalToLocal(globalHitPoint);
theHit.x = localHitPoint.x;
theHit.y = localHitPoint.y;
theEnemy.limb1.addChild(theHit);