//1.如何暂停游戏?就是停止更新!!!所以在游戏函数里的update里设置
window.pause = false//我认为暂停机制比较特殊所以设置的是全局变量
window.addEventListener('keydown', function(event){//我看萧大这里没有打空格
k = event.which
if(k == 80) {//p对应的键盘值
pause = !pause//按下p可以暂停,也可以继续,所以是!pause
}
})
var update = function() { if(!pause) { return } } update()//我不是很会编辑
2.实时改变游戏的fps
首先,我第一次接触的是setInterval函数第一个参数是一个函数,第二个参数是1s多少帧,形如1000/fps,我的理解是,setInterval 可以自动在多少秒后播放下一帧,而setTimeout,的第二个参数表示下一次,仅仅只有一次
所以可以用这个来实时设置fps
首先,我采用input type = range 来调fps
<hr>
<input id="id-input-speed" type="range" value="1">
再给这个绑定一个事件就是
document.querySelector('#id-input-speed').addEventListener('input',function(event){
var input = event.target
window.fps = Number(input.value) + 1//滑块在左端的时候是0所以要加1
})
然后在运用setTimeout函数
var runLoop = function() {
update()
context.clearRect()
draw()
setTimeout( function(){
runLoop()
}, 1000/window.fps)
}
setTimeout( function(){
runLoop()
}, 1000/window.fps)
以后每天至少写一篇博客。2017.1.29