我的目标是使用画布编写迷你游戏,其中一项任务是创建“bug”对象,每隔1-3秒进入一次场景。我尝试过像setTimeOut,setInterval这样的函数,但我无法正确使用它。这是我的尝试
bugs =[];
function addBug(){
var bug = createBug();
bugs.push(bug);
}
function createRandomNumber(max){
return Math.floor((Math.random() * max) + 1);
};
var enterBug = setInterval(addBug,createRandomNumber(10)*1000);
目前我以恒定的速度产卵,但不知道如何将其改为每1-3个。任何建议?提前谢谢。
答案 0 :(得分:3)
目前,您只需在初始setInterval
来电时设置一次费率。您可能需要像这样使用setTimeout:
...
function addBug(){
...
bugTimeout = setTimeout(addBug, createRandomNumber(10)*1000);
}
...
bugTimeout = setTimeout(addBug, createRandomNumber(10)*1000);
如果您想获得更多随机性,您也可以考虑随机数生成。现在,您只能获得精确的第二个值1-10,因为您将乘以1000以在随机生成完成后转换为秒。如果你想要更随意的东西,你可以使用:
function createRandomNumber(maxSeconds){
minSeconds = 1;
if (maxSeconds < minSeconds) {
maxSeconds = minSeconds;
}
interval = maxSeconds - minSeconds;
return (Math.floor(Math.random() * interval) + minSeconds) * 1000;
};
当设置超时时,你当然不需要再乘以1000。
bugTimeout = setTimeout(addBug, createRandomNumber(10))