Phaser.js - 如何从组中取出对象?

Phaser.js - how do I take an object out of a group?

我正在玩移相器入侵者示例游戏。

当物体被射击时,我没有杀死它,而是改变了精灵并将其移动到屏幕底部。不过,现在又可以出手了。我不希望它可以第二次拍摄。我在想,因为 gamephysics 在 'aliens' 组,所以可能有两个选项。

a) 要么我可以将单发外星人从组中移除 'aliens' 并希望阻止它被第二次射击。

b) 或者有某种方式说“外星人刚刚被击中=现在受到保护不再被击中”,我尝试了以下无济于事。

alien.physicsBodyType = null;

这是我现在的碰撞处理程序 函数碰撞处理程序(子弹,外星人){

//  When a bullet hits an alien we kill them both
bullet.kill();
alien.loadTexture("cured");
// move alien to bottom

var tween2 = game.add.tween(alien).to( { y: 300 }, 1000,    Phaser.Easing.Linear.EaseIn, true);
tween2.onComplete.add(doNext, this);
    tween2.start();

所以,基本上改变后的精灵还是可以被射中的,我需要让它不能被射中。

我试过了。

game.world.add(happy); 

它改变了精灵的位置,它仍然可以射击。嗯...

有没有办法消除单发外星人的碰撞?

好的,我想出了我的答案,只需停用精灵的 body 即可,您无需将其从组中取出。

sprite.body.enable = false;

其中 'sprite' 是您实际精灵的名称。已测试并有效。