jQuery:暂停按钮以暂停所有其他操作
jQuery: Pause button to pause all other actions
我正在制作一个小游戏,我有一个暂停游戏的按钮。我怎么能 "pause" 游戏不执行任何操作,而单击 "resume" 只是恢复所有操作,就好像什么都没发生一样?
假设我有一些复杂的编码,所以我不能只在一个函数中实现一个小东西:它确实需要涵盖所有 "busy" 个东西。
感谢您的宝贵时间!
暂停按钮:
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()
功能即可。
我正在制作一个小游戏,我有一个暂停游戏的按钮。我怎么能 "pause" 游戏不执行任何操作,而单击 "resume" 只是恢复所有操作,就好像什么都没发生一样?
假设我有一些复杂的编码,所以我不能只在一个函数中实现一个小东西:它确实需要涵盖所有 "busy" 个东西。
感谢您的宝贵时间!
暂停按钮:
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()
功能即可。