set interval函数不止一次调用,而是随机调用

时间:2016-06-18 11:36:10

标签: javascript game-engine

嗨即时制作游戏和敌人攻击我想使用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进行动画制作!

提前谢天谢地!

1 个答案:

答案 0 :(得分:3)

你应该用这个:

      att = setTimeout(setAttack, 2000);

而不是

      att = setInterval(setAttack, 2000);