Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:Pause按钮暂停所有其他操作_Javascript_Jquery_Function_Resume - Fatal编程技术网

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

Javascript jQuery:Pause按钮暂停所有其他操作,javascript,jquery,function,resume,Javascript,Jquery,Function,Resume,我正在做一个小游戏,我有一个暂停游戏的按钮。我怎样才能“暂停”游戏中的任何动作,但当点击“恢复”按钮时,就好像什么都没发生一样恢复所有动作 假设我有一些复杂的编码,所以我不能只在一个函数中实现一件小事:它真的需要覆盖所有“繁忙”的事情 谢谢你抽出时间 暂停按钮: function pauseGameBtn() { $("#pause").click(function() { if (pauseBtnClicked == true) { // ...

我正在做一个小游戏,我有一个暂停游戏的按钮。我怎样才能“暂停”游戏中的任何动作,但当点击“恢复”按钮时,就好像什么都没发生一样恢复所有动作

假设我有一些复杂的编码,所以我不能只在一个函数中实现一件小事:它真的需要覆盖所有“繁忙”的事情

谢谢你抽出时间

暂停按钮:

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

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

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

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;
});
伪:

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()
函数。

我们需要查看您的代码是否有任何有效的帮助,但示例中的标志是一种方式,您可能还需要清除所有正在运行的计时器。只需使用一个div作为图层,当您按下“暂停”按钮时,在屏幕顶部显示该图层,并设置“打开”标志,该标志将检测您是否按下了“暂停”按钮。该标志是一个好主意。如果看不到您将要执行的任务类型,就很难提出最佳方法。在任何情况下,对于一个持续运行的游戏来说,像“暂停”这样的事情肯定需要从一开始就“烘焙”。每个动作、事件、任务等都将受到“暂停”条件的约束。某些任务您可能希望继续运行,例如,如果任何角色有移动动画或其他内容。像播放时钟、能量累积之类的事情,你可能不需要停止计时器,但使用标志来防止变量增加。有标志的想法确实很好。我将不得不考虑我将如何实现这一点,但我想最终会成功的。谢谢这可能真的很有用。谢谢,TBA!