[AS3] [Nape Physics]如何在InteractionListener中访问Nape主体的关联对象?

时间:2014-10-23 21:41:06

标签: actionscript-3 collision-detection nape

我需要帮助AS3中的物理引擎Nape。我有一个带有一些矩形(Nape体)的类作为成员变量。我有一个InteractionListener,当这些矩形与场景中的某些圆圈(也是Nape身体)相互作用时会做出反应。但是,我需要在处理InteractionListener内部的碰撞时访问矩形所属的类实例。类实例有一些我需要调用的方法。我怎么能这样做?

public function foodInteraction(callback:InteractionCallback):void {
    Food.list.remove(Body(callback.int1));
    Universe.space.bodies.remove(Body(callback.int1));
    // callback.int2 is part of class Organism, 
    // need to access that organism and call organism33.eat();
}

我有一定数量的生物体实例。每个生物体都具有动态数量的矩形。它只是第一个相互作用的矩形。我现在只能看到的解决方案是将所有相互作用的矩形与所有生物体实例的列表一起放在一个单独的列表中,然后通过另一个列表中矩形的索引访问该生物体。但是通过矩形体中的一些用户数据来访问生物体会快得多......我无法扩展Body,因为它是最后一类。 请帮忙!

1 个答案:

答案 0 :(得分:0)

我讨厌在询问它后几秒找到解决方案。如果其他人对解决方案感兴趣:

像这样存储实例:      body.userData.organism = organism;

然后访问它:      callback.int2.userData.organism.foo();