1

我目前正在玩一些 AS3 平台游戏,并尝试为平台使用更干净的基于对象的方法。简而言之,我正在尝试检测玩家对象是否与平台碰撞 - ala:

if (!player.hitTestObject(this)) {
    //player falls
}

但是,问题在于实际引用玩家对象 - 玩家位于以下位置(来自舞台);manager.player - 平台位于 manager.level.foreground。

有没有办法从上面列出的前景对象中实际引用播放器对象,而无需将构造函数从播放器传递到平台的每个实例?

4

2 回答 2

2

你可以做

if (!this.parent.parent.player.hitTestObject(this)) {
    //player falls
}

但我强烈建议不要这样做,因为它对更改非常不灵活,并可能导致调试噩梦:)

让经理处理孩子之间的冲突不是更整洁吗?

于 2013-09-28T20:10:52.583 回答
1

您可以获得对创建播放器对象的位置的静态引用。在该类中,您基本上返回对播放器的引用。

于 2013-09-28T20:05:28.033 回答