在Metro App中实现计时器应用程序

时间:2012-10-04 04:12:01

标签: javascript timer microsoft-metro windows-runtime winjs

我正在Metro应用程序中开发一个游戏,其中会有一个游戏的初始计时器,比如大约1分50秒,计时器显示当前时间。如果1分50秒的时间结束,游戏将结束它会显示一条消息,我将如何实现这样的行为?

3 个答案:

答案 0 :(得分:1)

我想说,你可以尝试这个(未经测试):

remainingTime = 110;
setInterval(function() {
        countdownStarted(); // game started
    }, 
    milliseconds // game will start in this much time
);

function countdownStarted() {
    setInterval(function() {
            remainingTime = remainingTime*100;
            updateTimeOnScreen(); // after every second
            if(remainingTime) countdownStarted();
        },
        100
    );
}

function updateTimeOnScreen() {
    if(remainingTime == 0) {
        timeUp(); // game over
    }
    // function continues
}

有关更多示例,建议您阅读this article

答案 1 :(得分:1)

这基本上可以解决问题,虽然这是我的应用程序唯一的功能,所以你的真实表现可能会有所不同,并且可能有其他改进,风格和其他方面,你可以做:

var timer = setInterval(function () {
    var div = document.getElementById('time'); // this is just a div

    // the div shows the time like this: "1:20" - 1 minute, 20 seconds
    var lastValue = div.innerText.split(':');

    var newValue = parseInt(lastValue[0]) * 60 + parseInt(lastValue[1]) + 1;

    if (newValue === 110) {
        div.innerText = "Game over!";
        clearInterval(timer);
    } else {
        div.innerText = Math.floor(newValue / 60) + ':' + newValue % 60;
    }
}, 1000);

对于更强大的内容,请查看this article。它看起来非常接近你想要做的事情。

答案 2 :(得分:0)

您可以创建一个setTimeout和clearTimeout方法设置为某个用户定义值的对象。

This link也可以为您提供一些有用的信息。