我一直在Code.org玩游戏,我使用文本(“时钟”)和“开始”按钮成功创建了15分钟的倒计时。 这是代码的一部分:
onEvent("start", "click", timing);
function timing () {
var countdown = 900;
var i = setInterval(function() {
countdown = countdown - 1;
setText("clock", countdown/60);
if(countdown === 0) {
clearInterval(i);
playSound("sound://default.mp3", false);
}
}
, 1000);
它工作正常只显示第二个十进制(例如15.91,15.88)而不是15.59,15.58等。我无法弄清楚如何更改它。创建另一个数组?我不知道。 我还想放一个我已经开始的休息和停止按钮:
onEvent("reset", "click", timingR);
function timingR () {
clearInterval (countdown);
}
}
onEvent("stop", "click", timingS);
function timingS () {
clearInterval (countdown);
}
但它们似乎不适用于倒计时阵列。 如果您有任何想法,请告诉我。谢谢。
答案 0 :(得分:0)
如果不重复已经回答的问题,这可能有助于回答您的问题https://stackoverflow.com/a/5698006/8055991
如果你想要更深入一点,你可以随时创建自己的计时器类,这里有一个例子 - https://github.com/shiffman/LearningProcessing/blob/master/chp18_data/example_18_09_Thread/Timer.pde
Daniel Shiffman有一个很棒的youtube系列,如果你刚刚开始,你会发现自己随时都可以编写任何你想要的代码: - )
答案 1 :(得分:0)
您在这里开始了一个很好的开始,而且您非常接近将代码放在您希望的位置。
首先,要正确显示时间,您必须自己构建一个字符串。您已经发现可以将map_keys
除以60以获得剩余的分钟数,但您也可以使用"modulo" or "remainder" operator (%
)来获取分钟内剩余的秒数,例如这样:
countdown
然后,您可以通过将这两个数字与var minutes = countdown / 60;
var seconds = countdown % 60;
组合在一起来创建字符串,如下所示:
":"
然后设置时钟显示的文本,如
var display = minutes + ":" + seconds
然而!如果你这样做,你会注意到你在分钟后仍然得到所有那些丑陋的小数。因此,作为最后一步,您应该使用Math.floor将您的分钟浮动转换为整数:
setText("clock", display);
所以你的最终代码看起来像
var minutes = Math.floor(countdown / 60);