2016-10-01 71 views
4

新来的JS,请你好。Javascript分数目标提醒

在为浏览器画布游戏创建Javascript分数时,以下代码每秒增加1。对于等于100的可变分数,我将如何处理这个函数,当它达到这个值时显示一个窗口警报?

尝试类似于if(score == 100);警报(分数)没有为我工作。

下面的代码目前不在JSFiddle中工作,输出显示在浏览器选项卡中。

var start = new Date().getTime(), 
 
    score = '0.1'; 
 

 
window.setInterval(function() { 
 
    var time = new Date().getTime() - start; 
 
    score = Math.floor(time/1000) ; 
 
    if(Math.round(score) == score) 
 
     { score += '.0 Score'; } 
 
    document.title = score; 
 
}, 100);

+0

什么:' if(Math.round(score)== score){score + ='.0 Score';警报(评分); }'?在你的例子中,你有一个逗号,在'if'之后立即搞砸了。 –

+1

You are close:if(score == 100){alert(score)};'(即最终没有逗号和分号) - 最佳实践使用'==='或甚至更好,在此如果使用'> ==',那么即使'score'超过100 – ochi

回答

1

您可能需要清除的时间间隔,当你完成。否则,区间继续上执行,并很快将比分不再是100(或任何上限会)沿线的

东西:

var start = new Date().getTime(), 
 
    score = '0.1'; 
 

 
// get handle to interval function 
 
var interval = window.setInterval(function() { 
 
    var time = new Date().getTime() - start; 
 
    
 
    score = Math.floor(time/1000); 
 
    console.log(score); 
 
    
 
    if (score >= 5) { // set to 5 for speedier test/check 
 
    score += '.0 Score'; 
 
    window.clearInterval(interval); // clear interval to stop checking 
 
    alert(score); 
 
    } 
 
    document.getElementById('title').innerHTML = score; // display it 
 
    document.title = score; 
 
}, 100);
<div id="title"></div>

+0

也是如此,谢谢。正如我所希望的那样工作,只需稍作修改。 –

+0

很高兴我能帮上忙 – ochi