游戏计时器Javascript
我正在创建一个倒计时计时器。如果秒等于零,我将游戏计时器Javascript,javascript,jquery,Javascript,Jquery,我正在创建一个倒计时计时器。如果秒等于零,我将2秒设置为var秒。请帮忙。我需要在得到2秒后停止程序循环 var isWaiting = false; var isRunning = false; var seconds = 10; function GameTimer(){ var minutes = Math.round((seconds - 30)/60); var remainingSeconds = seconds % 60; if(remainingSe
2秒
设置为var秒
。请帮忙。我需要在得到2秒后停止程序循环
var isWaiting = false;
var isRunning = false;
var seconds = 10;
function GameTimer(){
var minutes = Math.round((seconds - 30)/60);
var remainingSeconds = seconds % 60;
if(remainingSeconds < 10){
remainingSeconds = "0" + remainingSeconds;
}
document.getElementById('waiting_time').innerHTML = minutes + ":" + remainingSeconds;
if(seconds == 0){
isRunning = true;
seconds += 2; //I need to stop the program from looping after getting the 2 seconds
}else{
isWaiting = true;
seconds--;
}
}
var countdownTimer = setInterval(GameTimer(),1000);
var isWaiting=false;
var isRunning=false;
var秒=10;
函数GameTimer(){
var分钟=数学轮((秒-30)/60);
var剩余秒数=秒数%60;
如果(剩余秒数<10){
剩余秒数=“0”+剩余秒数;
}
document.getElementById('waiting_time')。innerHTML=minutes+“:”+remainingSeconds;
如果(秒==0){
isRunning=true;
秒+=2;//我需要在获得2秒后停止程序循环
}否则{
isWaiting=true;
秒--;
}
}
var countdownTimer=setInterval(GameTimer(),1000);
这是您的固定代码:
var isWaiting = false;
var isRunning = false;
var seconds = 10;
var countdownTimer;
var finalCountdown = false;
function GameTimer() {
var minutes = Math.round((seconds - 30) / 60);
var remainingSeconds = seconds % 60;
if (remainingSeconds < 10) {
remainingSeconds = "0" + remainingSeconds;
}
document.getElementById('waiting_time').innerHTML = minutes + ":" + remainingSeconds;
if (seconds == 0) {
isRunning = true;
seconds += 2;
if (finalCountdown) {
clearInterval(countdownTimer); // Clear the interval to stop the loop
} else {
finalCountdown = true; // This will allow the 2 additional seconds only once.
}
} else {
isWaiting = true;
seconds--;
}
}
countdownTimer = setInterval(GameTimer, 1000); // Pass function reference, don't invoke it.
var isWaiting=false;
var isRunning=false;
var秒=10;
var倒计时;
var finalCountdown=假;
函数GameTimer(){
var分钟=数学轮((秒-30)/60);
var剩余秒数=秒数%60;
如果(剩余秒数<10){
剩余秒数=“0”+剩余秒数;
}
document.getElementById('waiting_time')。innerHTML=minutes+“:”+remainingSeconds;
如果(秒==0){
isRunning=true;
秒+=2;
如果(最终结算){
clearInterval(倒计时);//清除间隔以停止循环
}否则{
finalCountdown=true;//这将只允许额外的2秒。
}
}否则{
isWaiting=true;
秒--;
}
}
倒计时=设置间隔(游戏计时器,1000);//传递函数引用,不要调用它。
工作演示:由于我无法理解问题中的代码,所以我写下了自己的计时器。所以,看看它是否适合你
var m=getId('m')、s=getId('s')、btn=getId('btn')、status=getId('status')、inc=getId('inc')、dec=getId('dec')、interval=null、time=0、min=0;
btn.onclick=startCounter;
inc.onclick=incTime;
dec.onclick=decTime;
函数startCounter(){
如果(时间我认为你至少应该告诉人们你的代码有什么问题?你对此有什么问题吗?嗨@Charient。谢谢你的回答。我更新了问题。谢谢你的回答。如果seconds==0
,我需要再设置2秒。但是如果我使用seconds+=2
,它将开始循环倒计时。如果我添加de>clearInterval(countdownTimer);
,它不会创建2秒的倒计时。因此,您希望它从10计数到0,然后从2计数到0,然后停止?是的,先生。这正是我需要的。我应该将条件放在哪里?正好放在我放的地方:)点击我的更新下面的JSFIDLE链接我需要两个倒计时计时器。第一个倒计时是为了等待游戏开始,第二个倒计时是为了运行游戏。如果等待的倒计时完成,我必须做游戏倒计时。这就是我需要的。我的上面的代码,将第一个倒计时设置为10秒。If(seconds==0)
我将另一个值设置为秒,但它开始循环。我需要在倒计时2秒后停止循环。谢谢
var m=getId('m'), s=getId('s'), btn=getId('btn'), status=getId('status'), inc =getId('inc') , dec =getId('dec'), interval=null, time=0, min=0;
btn.onclick = startCounter;
inc.onclick = incTime;
dec.onclick = decTime;
function startCounter() {
if (time<=0) {
status.textContent='Increase the timer first!';
time=0;
return;
}
status.textContent='Counting!';
btn.textContent = 'Stop';
btn.onclick = stopCounter;
interval = setInterval(function(){
time--;
if (time<=0) {
stopCounter();
status.textContent='Time\'s Up';
}
setTime();
},200);
}
function stopCounter() {
btn.textContent = 'Start';
btn.onclick = startCounter;
status.textContent='Stopped!';
if (interval) clearInterval(interval);
}
function incTime(){
time++;
setTime();
}
function decTime(){
time--;
setTime();
}
function setTime() {
min= time/60;
if (time<10) s.textContent= '0'+Math.floor(time%60);
else s.textContent= Math.floor(time%60);
if (min<0) m.textContent= '00';
else if (min<10) m.textContent= '0'+Math.floor(min);
else m.textContent= Math.floor(min);
}
function getId(x) {
return document.getElementById(x);
}