1

是否可以在将特定主体添加到世界后删除它的行为?比如你有一辆坦克,它受到了重力、碰撞行为……,然后你用火箭和坦克相撞来杀死它,那么你仍然想把坦克的身体留在世界上但不会能够再次碰撞。

4

1 回答 1

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以更新行为。

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

于 2014-06-30T18:06:07.127 回答