暂停/取消暂停Javascript俄罗斯方块游戏
Javascript: Pause/Unpause javascript Tetris game
我最近开始工作的javascript俄罗斯方块模板,我已经卡住了,试图实现暂停功能。我正在尝试创建一个窗口。Onkeydown功能,当一个按钮被点击,游戏将暂停,并切换到继续,一旦再次点击。
这是我的代码片段
function get(id) {
return document.getElementById(id);
};
function hide(id) {
get(id).style.visibility = 'hidden';
};
function show(id) {
get(id).style.visibility = null;
};
function html(id, html) {
get(id).innerHTML = html;
};
function timestamp() {
return new Date().getTime();
};
function random(min, max) {
return (min + (Math.random() * (max - min)));
};
function randomChoice(choices) {
return choices[Math.round(random(0, choices.length - 1))];
};
if (!window.requestAnimationFrame) { // http://paulirish.com/2011/requestanimationframe-for-smart-animating/
window.requestAnimationFrame = window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function (callback, element) {
window.setTimeout(callback, 1000 / 60);
}
}
var isPaused = true;
window.requestAnimFrame = (function () {
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
function (callback) {
window.setTimeout(callback, 1000 / 60);
};
})();
function Start() {
if (isPaused) {
Update();
}
requestAnimFrame(Start);
}
window.onkeydown = function () {
isPaused = !isPaused; // flips the pause state
};
谁能给我指个正确的方向? 您必须在setTimeout上保留一个引用。如,
module.timeout = setTimeout(callback, 1000/60);
所以当你翻转isPaused时,清除两个超时并在你暂停它们的时候重新启动它们
clearTimeout(module.timeout)
相关文章:
- 如何临时暂停浏览器渲染,然后恢复整个页面
- jQuery循环在特定位置暂停
- NodeJS-readline暂停和恢复事件发射器(逐行读取)
- 最小化时暂停Javascript动画
- jQuery:暂停按钮可以暂停所有其他操作
- tiltSlider播放/暂停视频元素(如果li有当前类)
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- CSS动画暂停并使用javascript播放
- 如何暂停和恢复jquery间隔
- 如何在隐藏时暂停jquery计时器
- 具体化:如何只使用HTML和Javascript制作播放/暂停按钮
- 在 jquery 中定位暂停和播放按钮
- 暂停文档-HTML、CSS、JavaScript
- 如何在悬停时暂停setInterval
- 暂停函数执行流程,直到ajax请求完成
- 使用javascript和随机暂停/超时快速循环文本
- 如何暂停网页
- HTML5画布-暂停时的运行时间
- 避免在钛合金加速器中暂停应用程序
- 暂停/取消暂停Javascript俄罗斯方块游戏