嗨即时制作游戏和敌人攻击我想使用setInterval巫婆会执行攻击功能。 问题是,当设置间隔执行时,它不止一次调用函数,不像在设置时间之后但在一次执行过程中多次调用
这是特定的代码,它不能正常工作
var setAttack = function(){
intr ++;
entity.attack(entity.wepon, dt);
var isColliding = collides(entity.wepon, target.entity);
if(isColliding)
{
target.stats.health -= 1;
console.log(target.stats.health);
}
}
if((attalumsFromTargetX >= -42) && (attalumsFromTargetX <= 42))
{
att = setInterval(setAttack, 2000);
}
这是完整档案上的链接 - https://github.com/Reenasyoo/Purplust/blob/master/src/entity.js
entity.attack()从230行开始 然后setAttack()从282行开始
所以当setInterval启动它时,setAttack函数在一个执行时间内被调用随机时间
我希望有人理解我想说的话! 顺便说一句,我使用rAf进行动画制作!
提前谢天谢地!答案 0 :(得分:3)
你应该用这个:
att = setTimeout(setAttack, 2000);
而不是
att = setInterval(setAttack, 2000);