我停留了一段时间的代码,我不明白它是什么问题,所以这里是:
我正在尝试为属于组(spritesGroup)的sprite制作hp bar,并且当其中一个sprite被射击时更新hp bar。
当myGroup的一个精灵被枪杀时调用(我将我的精灵组的name属性用作其中每个精灵的hp):
//name is the hp of the sprites
//full name is 100
mySprites.name -= 25
updateOrCreateHp(this)
我在create()函数中一次调用updateOrCreateHp()为我的每个精灵(位于spritesGroup中)以及每次射击其中一个精灵创建一个hp条(以更新该sprite的hp条) ):
function updateOrCreateHp(that){
if(this.hpBar){this.hpBar.clear()}
//group of my sprites
spritesGroup.getChildren().forEach(function (child) {
this.hpBar = that.add.graphics();
this.hpBar.fillStyle(0xffffff);
this.hpBar.fillRect(child.x, child.y, child.name, 3);
if(child.name <= 0){
console.log('destroy it')
this.hpBar.destroy()
}else{}
});
}
问题是:当hpBar为<= 0时,经过4次射击它不会销毁(但是我得到销毁日志)
我什至不确定它是来自相位器还是Java脚本。我尝试了一切清除... setVisible(false)...