jQuery:暂停按钮暂停所有其他操作

时间:2015-04-08 16:27:01

标签: javascript jquery function resume

我制作了一个小游戏,我有一个按钮来暂停游戏。我怎么能暂停"游戏不做任何动作,但点击"恢复"只是为了恢复所有行动,好像什么都没发生一样?

我们说我有一些复杂的编码,所以我不能在一个函数中实现一个小东西:它真的需要覆盖所有"忙碌"的东西。

感谢您的时间!

暂停按钮:

function pauseGameBtn() {
    $("#pause").click(function() {
        if (pauseBtnClicked == true) {
            // ...
        }
        else {
            // ...
        } 
    });
}

2 个答案:

答案 0 :(得分:1)

典型的游戏循环通过单点代码。您的计时器会定期调用它,并且是您检查暂停状态所需的单个位置。

这大大简化了,但基本思路是:

var paused = false;
// endless game loop
setInterval(function(){
    if (!paused){
       RunGameLoop();  // process input => calculate => render etc
    }
}, 50);

$("#pause").click(function() {
     paused = true;
});

$("#resume").click(function() {
     paused = false;
});

答案 1 :(得分:0)

伪:

var  itv = null; // The interval

(function gameUIlogic{}(
   // Main Menu stuff
   // and other stuff independent from framerate interval
)());

function gameLogic() {
    // Game logic here
    itv = window.requestAnimationFrame(loop);
}

function pause() {
    return itv ? (window.cancelAnimationFrame(itv ), itv=null) : gameLogic();
}

假设您有一个播放和暂停按钮,只需触发两者上的pause()功能。