Компонент здоровья уже есть готовый в движке, а получение урона вот:
export default function takeDmgComp() {
return {
id: "takeDmgComp",
require: ["pos"],
invulMs: 100,
invul: 0,
add() {
let effect = this.add([
sprite("moth"),
anchor("center"),
{
add(){
this.hidden = true
this.play("effect")
}
}
])
this.onCollide("scissors", () => {
if (!this.invul) {
this.hurt()
this.invul = this.invulMs
}
})
this.onHurt(() => {
effect.hidden = false
})
this.on("invulEnd", () => {
effect.hidden = true
})
},
update() {
this.invul = this.invul > 0 && this.invul - 1
if (this.invul == 0) this.trigger("invulEnd")
},
}
}там добавляется визуальный эффект неуязвимости после получения урона, надо бы добавить ещё анимацию получения урона