移除添加到世界中的特定body的行为

  • 本文关键字:body 添加 世界 physicsjs
  • 更新时间 :
  • 英文 :


是否可以在已添加到世界后删除特定Body的行为?例如,你有一个坦克,它遭受了重力,碰撞行为……,然后你通过火箭与坦克碰撞来杀死它,然后你仍然希望将坦克的身体保留在世界中,但不能再次碰撞。

这取决于你想如何实现这一点,但是是的。最简单的方法是在碰撞检测行为上使用.applyTo方法。

var collidingBodies = [];
collidingBodies.push( tank ); // could add more too...
var collisionDetection = Physics.behavior('body-collision-detection');
collisionDetection.applyTo( collidingBodies );
world.add( collisionDetection );
// elsewhere... 
// when explosion happens
var idx = collidingBodies.indexOf( tank );
if ( idx > -1 ){
    collidingBodies.slice( idx, 1 );
    collisionDetection.applyTo( collidingBodies );
}

碰撞检测应用于一组对象(在数组中)。当坦克爆炸时,将其从数组中移除,并将该数组传递回.applyTo以更新行为。

您也可以使用Query功能来帮助更好地组织数组,但这是一般的想法。

相关内容

  • 没有找到相关文章

最新更新