所以,我正在编写一个游戏,将使用键盘输入。我跟踪类似于这里的KeyDown和KeyUp事件:
http://nokarma.org/2011/02/27/javascript-game-development-keyboard-input/index.html
但是,有一些用例可以忽略Keyup/Keydown事件。我尝试在我的身体元素中添加一个模糊元素,但是在一些用例中,它不会模糊。我能给出的最简单的例子是,如果用户右击文档之外的某个区域,比如在书签上,浏览器不会将任何事件提供给DOM,上下文菜单就会开始获取键盘输入。因此,如果用户按住向上箭头,同时仍保持向上箭头,则右键单击书签,然后释放箭头键,则将永远不会将相应的KeyUp事件提供给浏览器。如果用户再次按下该键,则该键将“重置”,但这仍然是一个错误。
对于Chrome和Firefox,我可以使用PointerLock API,但我想知道是否还有什么可以做的。我曾想过,如果鼠标离开了工作区,就会自动模糊,但当我玩游戏时,我通常会将鼠标移到下角。AFAIK无法手动轮询键盘。有我错过的工作吗?
发布于 2015-04-10 04:20:02
我不确定它是否有用,但是在您的实现中,keydown方法在某个地方更改了一个变量,以指示它已按下。
还运行一个计时器,该计时器将每x的值重置为未按(如果仍按下该值,则keydown方法应在相同的更新中触发)
然后,在keyup方法上,将变量更改为unpressed。
这应该会给出一个更可靠的指示,如果按钮是按下的,我以前在java游戏中使用了一个模拟方法,效果非常好!
https://stackoverflow.com/questions/29545134
复制相似问题