最近在写一个html5小游戏,游戏中难免要用到计时的功能。我是简单的设置了一个passedTime变量,在游戏循环中没60帧++一次(FPS=60)。然后就要将passeTime转换成00:00格式的时间显示出来。虽说这种计算机时间的方法不是很准确(因为不是任何机器都能保证任何一秒内都能update 60次),不过现在的电脑效率都很高了,加上broswer的进步,除非你用古董机。
其实方法很多,这里我就简单的用了以下两个函数:
function getTimeFromSeconds(totalSeconds) {
if (totalSeconds < 86400) {
var dt = new Date("01/01/2000 0:00");
dt.setSeconds(totalSeconds);
return formatTime(dt);
} else {
return null;
}
}
function formatTime(dt) {
var h = dt.getHours(),
m = dt.getMinutes(),
s = dt.getSeconds(),
r = "";
if (h > 0) {
r += (h > 9 ? h.toString() : "0" + h.toString()) + ":";
}
r += (m > 9 ? m.toString() : "0" + m.toString()) + ":"
r += (s > 9 ? s.toString() : "0" + s.toString());
return r;
}
可以像这样使用:
$("#game_passed_time").text(getTimeFromSeconds(gamePassedTime));
这样就可以显示时间了,哈哈,希望这么简单的东西没浪费你很多时间。