为什么我的计时器使用Date()。getTime()不起作用?

时间:2015-08-17 21:53:01

标签: javascript html

我一直在为一个我曾经作为业余爱好工作的游戏开发一个简单的计时器,每次更新计时器的值时,它都被重置了!有人可以告诉我为什么会这样吗?

var points = 0;
var timeLeft = 100000;
var timeOver = 0;

function tick() {
  ....
  checkTimes();
  updateScore();

};

function updateScore() {
 var score = document.getElementById("score");
 score.innerHTML = points;
 setTimes();
};

function setTimes(){
  var giveTime = 100000;
  if(points>1){
    giveTime = 10000 - (points*0.05);
  }
  timeOver = new Date().getTime() + giveTime;
};

function checkTimes(){
  var now = new Date().getTime();
  timeLeft = timeOver - now;
 var time = document.getElementById('time');
  time.innerHTML = parseInt(timeLeft/1000)+"."+(timeLeft%1000);


  if(now >= timeOver){
    gameOver();
  }

  else{}


};

2 个答案:

答案 0 :(得分:0)

它可能来自你的else{},我认为你必须循环其中的功能。但我们都同意你必须给我们更多代码

function checkTimes(){ 
    var now = new Date().getTime();
    timeLeft = timeOver - now;
    var time = document.getElementById('time');
    time.innerHTML = parseInt(timeLeft/1000)+"."+(timeLeft%1000);


    if (now >= timeOver) { 
        gameOver();

    } else {
        var now = new Date().getTime();
        timeLeft = timeOver - now;
        var time = document.getElementById('time');
        time.innerHTML = parseInt(timeLeft/1000) + "." + (timeLeft % 1000);
    }
}

答案 1 :(得分:0)

计时器每次都会重置,因为点数永远不会改变......看看代码,我无法确定哪些点应该增加或减少,但是你得到了我的"点" :)