我正在开发一个动作游戏,并试图设置舞台边界;然而,玩家对象是舞台对象的子对象;当引用player.x时,我在级别对象本身中获得它的x位置。从本质上讲,我要做的是;
if (player.x < stage.x.0) {
player.x = stage.x.0
}
有没有简单的方法可以做到这一点,或者我应该只是确保播放器对象始终在舞台上,而不是作为子对象?
答案 0 :(得分:2)
您可以使用localToGlobal()方法将Point(flash.geom.Point)从一个对象的坐标转换为舞台坐标。要么通过询问子对象来转换玩家的位置:
var playerPosition:Point = new Point(subobject.player.x, subobject.player.y);
var playerPositionOnStage:Point = subobject.localToGlobal(playerPosition);
或者,因为新的Point默认为0,0通过要求玩家对象本身将其转换为全局坐标:
var playerPositionOnStage:Point = subobject.player.localToGlobal(new Point());