0

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

4

3 回答 3

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);

如需更强大的功能,请查看这篇文章。看起来它非常接近您想要做的事情。

于 2012-10-05T04:41:27.537 回答
1

I would say, you can try this (untested):

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
}

For more examples, I would suggest you to read this article.

于 2012-10-04T04:42:27.610 回答
0

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

此链接还可以为您提供一些有用的信息。

于 2012-10-04T04:39:03.767 回答