我正在创建HTML5 Canvas游戏,如果按下P键(键码80),游戏将暂停。如果第二次按下该键,游戏将继续。每次按下P键时,是否有一种简单的方法来切换isPaused布尔值?这是我到目前为止的代码:
var isPaused = false;
function checkKey(e, value) {
var keyID = e.keyCode || e.which;
if (keyID === 38) { // Up arrow
player1.isUpKey = value;
e.preventDefault();
}
if (keyID === 80) {
isPaused = !isPaused;
}
}
//游戏循环
function step() {
setTimeout(function() {
if (!isPaused) {
update(); // controls character movement
}
draw();
requestAnimFrame(step);
}, 30);
}
非常感谢,
答案 0 :(得分:1)
您可以使用:
反转布尔值isPaused = !isPaused; // ! = NOT which will invert it
同样,您可以使用类似的切换开关将帧速率降低到30 FPS,而不是使用setTimeout
:
var skipFrame = true;
function step() {
skipFrame = !skipFrame;
if (skipFrame || isPaused) {
requestAnimationFrame(step);
return
}
update();
requestAnimationFrame(step);
}