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' 是您实际精灵的名称。已测试并有效。
我正在玩移相器入侵者示例游戏。
当物体被射击时,我没有杀死它,而是改变了精灵并将其移动到屏幕底部。不过,现在又可以出手了。我不希望它可以第二次拍摄。我在想,因为 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' 是您实际精灵的名称。已测试并有效。