【发布时间】:2022-09-27 09:02:46
【问题描述】:
constructor() {
document.addEventListener(\"keyup\", this.keyStart.bind(this), {once:true});
document.addEventListener(\"keydown\", this.keySpaceHandler.bind(this));
}
keySpaceHandler(e) {
if (e.keyCode === 32 && missile_count > 0) {
...
}
}
keyStart(e) {
if (e.key === \"ArrowLeft\" || e.key === \"ArrowRight\") {
isGameStart = true;
if (isGameStart === true) {
...
}
}
}
我希望 keyStart 只听一次事件,这样它就不会在每次用户使用箭头键时都被调用,而只会在第一次开始游戏时被调用。 当用户按空格键然后按箭头键时会出现问题。因为我将 keyStart 属性设置为 once:true,所以如果在箭头键之前按下任何其他键,它不会监听任何事件。有没有办法解决这个问题,即使用户在箭头键之前按下任何其他键,一旦按下箭头键,就会调用 keyStart 并按预期开始游戏?先感谢您!
-
因此,您需要将自己的代码编写一次。
标签: javascript