javascript的新手,有没有办法创建一个空闲游戏?

时间:2019-11-27 18:03:36

标签: javascript

我遇到了这个问题,我想做一个小型的空闲游戏,但我找不到永远循环某些东西并仍然运行其他代码的可能。这是我到目前为止所拥有的

var blops = 0;
var clickpower = 1;
var bps = 0;
var blopx = 240;
var blopy =220;

//Clicking the blob
onEvent("blob", "click", function() {
blops += clickpower;
blopx += 10;
blopy += 10;
setSize("blob", blopx, blopy);
sleep(90);
blopx += -10;
blopy += -10;
setSize("blob", blopx, blopy);
setText("blopsCount",blops);
});
//Debug BPS Toss Later
onEvent("bpsDebug", "click", function() {
bps += 1;
});
//Add BPS Tto Blops
while(true){
addBlops();
}

///FUNCTIONS
function addBlops(){
  sleep(1000);
  blops += bps;
}
//A Waiting Function
function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}

1 个答案:

答案 0 :(得分:1)

您的代码被锁定,因为您从不释放控制权。 JavaScript是一种单线程语言。如果要允许发生其他事情,则需要通过允许函数返回来释放控制。如果您想重复执行某项操作,则可以使用setInterval每隔一定毫秒数运行一次代码,或者使用requestAnimationFrame将函数调用添加到事件循环中,并允许UI等其他内容继续执行即使您的函数被反复调用以更新您需要执行的操作也可以正常工作。如果您想衡量自己的选择,可以使用一些good documentation

相关问题