移相器3分分钟创建游戏时钟

问题描述

我正在使用Phaser 3.24.1开发一款游戏,并且想创建一个游戏时钟。时钟应设置为00:00或零分钟零秒,并在游戏开始时开始。我希望游戏在时钟达到99:99或恰好1小时40分钟时停止。我可以使用以下代码创建一个从零开始的简单计时器:

timedEvent = this.time.addEvent({ delay: 6000000,callback: this.onClockEvent,callbackScope: this,repeat: 1 }); 
text.setText('Game Clock: ' + timedEvent.getElapsedSeconds().toString().substr(0,4));

此代码将创建一个计时器事件,并以秒为单位获取经过的时间。我想要的是显示分钟和秒的时钟。我将如何去做?

解决方法

如果您有getElapsedSeconds()提供的秒数,则只需要做一点数学就可以得到分钟数:

let elapsedTime = timedEvent.getElapsedSeconds();
let minutes = Math.floor(elapsedTime / (minutes * 60));
let seconds = Math.floor(time - minutes);

您现在可以拉动分钟和秒,如果秒小于10,请确保添加一个'0'

但是,如果您运行此命令,则由于要显示分钟和秒,所以不会在冒号后看到大于“ 59”的数字。

let elapsedTime = 72.99;
let minutes = Math.floor(elapsedTime / 60);
let seconds = Math.floor(elapsedTime - (minutes * 60));
document.getElementById('result').innerText = minutes + ':' + seconds;
<div id="result"></div>

所以您可能想要的只是显示秒数:

let elapsedTime = 172.99;
// You could deal with adding zeros,or just add a number to the seconds,and then skip it when you pull it for display.
let displayTime = (10000 + elapsedTime).toString().substr(1,4);
document.getElementById('result').innerText = displayTime.substr(0,2) + ':' + displayTime.substr(2,2);
<div id="result"></div>

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...