Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.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游戏中添加暂停功能时遇到问题_Javascript_Html_Canvas_Event Listener - Fatal编程技术网

在javascript游戏中添加暂停功能时遇到问题

在javascript游戏中添加暂停功能时遇到问题,javascript,html,canvas,event-listener,Javascript,Html,Canvas,Event Listener,我试图弄清楚当页面加载时,游戏是如何“暂停”的,用户必须按enter键才能玩,当用户按enter键时,游戏开始 以下是游戏激活时控制玩家的当前按键状态。我觉得我就快到了(如果我错了,请纠正我),但我就是不知道加载页面时画布“暂停”的原因以及按下enter按钮时如何“播放” keystate = {}; document.addEventListener('enter', function(evt){ keystate[evt.keyCode] = true; }); docu

我试图弄清楚当页面加载时,游戏是如何“暂停”的,用户必须按enter键才能玩,当用户按enter键时,游戏开始

以下是游戏激活时控制玩家的当前按键状态。我觉得我就快到了(如果我错了,请纠正我),但我就是不知道加载页面时画布“暂停”的原因以及按下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];
  });
我有两种方法

  • 一个简单,但不是很好

  • 一个努力,可以很好

第一个ay只是用
comfirm(text)
发出警报

以下是这种方式的代码:

var gameBrightness=10;
函数暂停(){
var pause=确认(“您暂停了游戏,单击“确定”继续游戏,单击其他按钮转到选项”);
如果(pause==false){//没有单击OK
var选项=确认(“单击“确定”不更改亮度,但另一个按钮将亮度更改为随机值”);
如果(选项==true){//单击确定
重做暂停();
返回;
}
否则{//没有单击“确定”
亮度=数学地板(数学随机()*20);
document.getElementById(“亮度”).innerHTML=亮度;
重做暂停();
返回;
}
}
}
var ReDopause=函数(){
暂停();
}
暂停

Brightness:10
您如何处理
keystate
对象?提供的代码没有任何意义。与其删除属性,不如执行
keystate[evt.keyCode]=false