添加到世界中后,删除特定正文的行为

时间:2014-06-30 03:29:57

标签: physicsjs

是否可以在将特定主体添加到世界后删除该特定主体的行为?例如,你有一个已经遭受重力,碰撞行为的坦克......然后你通过将火箭与坦克相撞来杀死它,那么你仍然想要保持坦克的身体在世界上但不会能够再次碰撞。

1 个答案:

答案 0 :(得分:1)

这取决于你想要实现的方式,但是。最简单的方法是在碰撞检测行为中使用.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 functionality来帮助更好地组织阵列,但这是一般的想法。