window.tm = {tma: false, tmb:false,};
clearInterval(window.tm.tma);
window.tm.tma = setInterval(function(){
enemy.setDir();//enemy是一个对象
setInterval(function(){
window.tm.tmb = enemy.move(eDir);
console.log(window.tm.tmb, window.tm.tma);//控制台输出为:undefined 1
},400);
},2000);
问题是,由于定时器累加导致enemy.move()的频率越来越快了,请问如何解决这个问题?代码见上,我觉得可能是变量名的问题。
我猜你的思路是,希望tma
每隔2
秒执行一次,然后每次tma
执行后的0.4
秒再执行一次enemy.move
?如果是这样的话,你的写法确实有问题,这么改改:
window.tm = {tma: false, tmb: false,};
clearInterval(window.tm.tma);
window.tm.tma = setInterval(function() {
enemy.setDir(); //enemy是一个对象
setTimeout(function() {//这里换成setTimeout
window.tm.tmb = enemy.move(eDir);
console.log(window.tm.tmb, window.tm.tma); //控制台输出为:undefined 1
}, 400);
}, 2000);