我发送一个子弹事件在页面上产生。然而,子弹应位于页面的子女应该在的区域。有一个Page One MovieClip
,其中有一个名为播放器的孩子,而玩家的孩子是枪。所以我试图保持子弹的位置和旋转与玩家的枪相同。所以我需要访问Page One的孩子的孩子。玩家和炮塔使用的是实例名称,而不是变量。
我试过这段代码,但是子弹在页面中产生,但不会在炮塔的位置上产生自己。此事件位于PageOne类中。
function fire(e:Event)
{
var b:Bullet = new Bullet();
b.rotation = player.turret.rotation;
b.x = player.turret.x + player.turret.width * Math.cos(player.turret.rotation / 180 * Math.PI);
b.y = player.turret.y + player.turret.width * Math.sin(player.turret.rotation / 180 * Math.PI);
addChild(b);
}
答案 0 :(得分:0)
您可以访问炮塔儿童。问题是您需要将炮塔MovieClip
内的坐标转换为PageOne MovieClip
内的坐标:
var b: Bullet = new Bullet();
var turretpoint:Point = new Point(player.turret.width, 0);
var pagepoint: Point = this.globalToLocal(player.turret.localToGlobal(turretpoint));
b.rotation = (player.scaleX > 0) ? player.turret.rotation : 180 - player.turret.rotation;
b.x = pagepoint.x;
b.y = pagepoint.y;
addChild(b);