我正在试图弄清楚当页面加载游戏时“暂停”并且用户必须按Enter键进行游戏以及当用户这样做时游戏开始。
以下是当游戏处于活动状态时控制玩家的当前关键状态。我觉得我几乎就在那里(如果我错了,请纠正我),但是当页面加载时我无法得到画布“暂停”的原因以及当输入按钮是如何让它“播放”时推压。
keystate = {};
document.addEventListener('enter', function(evt){
keystate[evt.keyCode] = true;
});
document.addEventListener('keydown', function(evt){
keystate[evt.keyCode] = true;
});
document.addEventListener('keyup', function(evt){
delete keystate[evt.keyCode];
});
答案 0 :(得分:0)
我有两种方式,
一个简单但不太好的
一个人很难,可以很好
第一个问题就是用
comfirm(text)
警告某些内容。
以下是这种方式的代码:
var gameBrightness = 10;
function pause() {
var pause = confirm("You paused the game, click 'OK' to continue your game and the other button to go to options");
if (pause == false) { //Didn't click on OK
var options = confirm("Click on 'Ok' to not change brigthness, but the other one to change the brightness to a random value");
if (options == true) { //Clicked on OK
ReDopause();
return;
}
else { //Didn't click on OK
brightness = Math.floor(Math.random() * 20);
document.getElementById("brightness").innerHTML = brightness;
ReDopause();
return;
}
}
}
var ReDopause = function() {
pause();
}
<button onclick="pause()">Pause</button>
<span id="brightness">brigthness : 10</span>
我没有做出的第二种方式,但是在每个动作或定时器中添加if
的声明。像这样:
var pause = false;
setInerval(tick, 100);
function tick() {
if (pause == false) {
....
}
}
在bginnning你应该有一个不可见的画布,这是暂停菜单。哇,你为此做了CSS:
#pause {
display: none;
...
}
当您暂停将pause
设置为true
时,将主画布设置为document.getElementById("mainCanvas").style.display = "none"
这将使画布消失,但仍然包含所有图纸。然后像这样显示pause
画布:document.getElementById("mainCanvas").style.display = "initial"
。单击“继续”时:将暂停设置为false
,与此相反。