while循环中的setInterval不起作用

时间:2014-04-12 03:20:12

标签: javascript html5-canvas

我是stackoverflow的老读者,但是新成员,这是我的第一个问题:)我试图用HTML5画布编写游戏。但是setInterval并没有在while循环中启动。我的代码:

var text = "Message";
var exit = 0;
while(exit==0)
{
drawLifeBar(100);
var balls = new Array();
var startInterval = setInterval(function() { intervalLoop(balls);},50);
text += "\nYour level: " + level;
alert(text);
}

我有很多警告框(循环工作),但无法进入setInterval。并且当取消while循环时setInterval有效。在这个while循环中出了什么问题?

PS:这是一个简单的落球游戏。球落下,如果你抓住,那么你就升级了。如果没有,游戏结束。没有while循环它工作正常。使用while循环,我试图这样做:如果你抓到足够的球,那么等级++,closeinterval并重启游戏(setInterval)。如果游戏结束,则退出= true,closeinterval并结束游戏。

3 个答案:

答案 0 :(得分:0)

function funcName() {
    alert("test");
}

var func = funcName();
var run = setInterval("func",10000)

答案 1 :(得分:0)

 var exit = false;


function intervalLoop(balls) {

      if(exit === true) clearInterval('startInterval');

}

答案 2 :(得分:0)

我对你的意图做了一些猜测。

我将你的函数命名为nextLevel,因为它确实是这样......我让它开始intervalLoop - 在这种情况下,它真的不需要设置间隔。

intervalLoop完成任务后,应致电nextLevel前进。

在最底部,我致电nextLevel以启动整个过程。

var text = "Message";
var exit = 0;

function nextLevel() {
  drawLifeBar(100);
  var balls = new Array();
  var startInterval = setInterval(function() { intervalLoop(balls);},50);
  text += "\nYour level: " + level;
  alert(text);
} 

// Missing from the code, so making something up
function intervalLoop(balls) {
  // Do something! The user one, restart the main loop
  // User won! Give him the next level
  nextLevel();
}


// And start the whole process here
nextLevel();