【发布时间】:2021-03-04 12:42:28
【问题描述】:
所以,我想要完成的是一个伤害系统,所以当敌人靠近玩家(玩家在屏幕上的位置)时,他们会受到伤害。但是,由于屏幕上同时有多个敌人,我不希望玩家被堆叠 10 层轰炸并立即死亡。所以这是我的解决方案。
createjs.Ticker.addEventListener("tick", damage1);
function drop() {
if (eX > p1.x - 40 && eX < p1.x + 40) {
health -= 1;
console.log("Health is: " + health);
}
}
function damage1() {
for (x = 0; x < enemy.length; x++) {
eX = enemy[x].x;
eY = enemy[x].y;
if (eY > p1.y - 25 && eY < p1.y + 25) {
setTimeout(drop, 2000);
}
}
}
然而,这并没有按我的预期工作。我想会发生的是,如果 if 语句通过,它将设置超时,等待 2 秒,然后到达它带走健康的函数。然而实际发生的是它到达超时,等待 2 秒,然后在每个滴答声中运行一次外卖健康命令,所以它只等待一次。
我正在使用 adobe animate、html5 画布(如果有任何改变)
【问题讨论】:
标签: javascript flash html5-canvas adobe