我目前正在玩一些AS3平台游戏,并试图采用更清晰的基于对象的平台方法。简而言之,我试图检测玩家对象是否与平台碰撞 - ala:
if (!player.hitTestObject(this)) {
//player falls
}
然而,问题在于实际引用玩家对象 - 玩家位于以下位置(来自舞台); manager.player - 平台位于manager.level.foreground。
有没有办法从上面列出的前景对象中实际引用播放器对象,而不将构造函数从播放器传递到平台的每个实例?
答案 0 :(得分:2)
你可以做到
if (!this.parent.parent.player.hitTestObject(this)) {
//player falls
}
但我强烈反对这一点,因为它对变化极不灵活,并导致可能的调试噩梦:)
让经理处理好孩子之间的碰撞是不是更整洁?答案 1 :(得分:1)
您可以获得创建播放器对象的位置的静态引用。在该类中,您基本上返回对播放器的引用。