我使用Nape Physics和开放版HaxeFlixel。我有几个FlxNameSprites在我的游戏中移动。 Nape自己对碰撞解决方案的处理非常好,但是我如何让自己的代码对发生的碰撞做出反应?
即如果玩家1和玩家2发生碰撞,Nape会解决碰撞并且物理发生。如何运行我自己的一些代码呢?什么是Nape相当于FlxG.overlap()?
答案 0 :(得分:2)
您可以使用侦听器进行跟踪: 为对象创建CbTypes,而不是将它们分配给相应的主体。 为该CbTypes创建碰撞listener并将其添加到空间
var CBODY1 = new CbType();
var CBODY2 = new CbType();
player1.body.cbTypes.add(CBODY1);
player2.body.cbTypes.add(CBODY1);
collisionListener = new InteractionListener(
CbEvent.BEGIN,
InteractionType.COLLISION,
CBODY1,
CBODY2,
onCollide
);
space.listeners.add(collisionListener);
private function onCollide(cb:InteractionCallback):Void
{
trace("COLLIDE");
}