如何逐步加快游戏的超时时间

时间:2018-09-01 16:16:51

标签: javascript html

for (i = 0; i < myObstacles.length; i += 1) {
  myObstacles[i].x += -10;
  myObstacles[i].update();
  if (myGameArea.frameNo >= 100 >= everyinterval(100)) {
    myObstacles[i].x += -5
    myObstacles[i].update();
  }
}

function everyinterval(n) {
  if ((myGameArea.frameNo / n) % 1 == 0) {
    return true;
  }
  return false;
}

在这种情况下,“ myGameArea.frameNo”是游戏的得分,而“ myObstacless”是障碍的速度。我想做的是,每达到100分,障碍就会增加-5速度。因此,在0-99时,速度将为-10,在100-199时,速度将为-15,依此类推。我很困惑,谢谢您的时间和帮助

我可以代替

  if (myGameArea.frameNo >= 100) {
    myObstacles[i].x += -5
    myObstacles[i].update();
  }
  if (myGameArea.frameNo >= 200) {
    myObstacles[i].x += -5
    myObstacles[i].update();
  }
  if (myGameArea.frameNo >= 300) {
    myObstacles[i].x += -5
    myObstacles[i].update();
  }

我想要的是更快地完成每一行的方法

3 个答案:

答案 0 :(得分:1)

var start_speed = 5,      // default speed
    speed = start_speed; 

// constantly re-calculate the sceed accodring to the score, on every frame:

speed = start_speed + Math.floor(score/100) * 5;

// on score below '100' speed will be 5 + 0
// on score '100' speed will be 5 + 5
// on score '200' speed will be 5 + 10

您可以修改数学以输出所需的速度更新

答案 1 :(得分:0)

您可以尝试使用此方法,而不要使用if

速度+ =-5 *(1+分数/ 100);

示例:

所以 <100

-5 *(1 + 99/100)=-5 *(1 + 0)=-5

得分为103时

-5 *(1 + 103/100)=-5 *(1 + 1)=-10

希望有帮助

答案 2 :(得分:0)

这似乎是使用modulo operator的一个很好的例子。您可以按以下方式实现请求的行为:

for (let i = 0; i < myObstacles.length; ++i) {
    if (myGameArea.frameNo[i] % 100 == 0) {
        myObstacles[i].x += 5;
        myObstacles[i].update();
    }
}