Famo.us 《美国名人》中的碰撞事件:如何让尸体卷入?

Famo.us 《美国名人》中的碰撞事件:如何让尸体卷入?,famo.us,Famo.us,我知道如何监听碰撞: collision.on('collision', function(e){ //e is one element involved in my collision }); 但我如何让两个人都参与进来?只有一个实体被传递给此函数。我不能100%确定您试图实现的目标,但是为了使两个(或更多)物理实体相互碰撞,您应该应用相同的碰撞对象 我喜欢将碰撞对象视为管理器,它控制谁与谁发生碰撞。我知道一些游戏引擎会以不同的方式来描述这一点,碰撞纯粹是事件或类型 我可以举一个最简

我知道如何监听碰撞:

collision.on('collision', function(e){
    //e is one element involved in my collision
});

但我如何让两个人都参与进来?只有一个实体被传递给此函数。

我不能100%确定您试图实现的目标,但是为了使两个(或更多)物理实体相互碰撞,您应该应用相同的碰撞对象

我喜欢将碰撞对象视为管理器,它控制谁与谁发生碰撞。我知道一些游戏引擎会以不同的方式来描述这一点,碰撞纯粹是事件或类型

我可以举一个最简单的例子:

physics.attach(collision, myFirstFamousPhysicsBody);
physics.attach(collision, mySecondFamousPhysicsBody);

我想你想要的答案可能已经在这里了。好消息是,您已经找到了正确的方法:)查看Famo.us(第122行),Collision类会发出pre/Collision/post事件以及包含碰撞源体和目标体的
collisionData
对象

下面是一个现有的答案,它演示了如何在冲突事件中访问此数据


希望这有帮助。

注意:我将此标记为一个副本,版主认为这是一个不同的问题,尽管您将答案标记为正确答案的副本

回答: 返回的
目标
是附加以创建碰撞的
主体
对象

collision.on('collision',函数(e){
var targetBody=e.target;
var sourceBody=e.source;
});

谢谢,但这不是我要找的。事实上,我已经做到了。我有大约30个相互碰撞的物体。问题是一旦它们碰撞,我就想阻止它们。所以我需要听听“碰撞”事件。但是,如上所述,我只能接触其中一个碰撞“代理”,因为我也需要另一个身体来决定下一步该做什么。可能是我的上帝的复制品,我是瞎子-谢谢!