javascript - 如何暂时停止事件keydown监听器?
问题描述
我的问题是:创建新圆圈后,它仍然快速动画(减少变量动画没有帮助)-> 如何在发生碰撞后临时杀死 keydown 事件侦听器,以使新圆圈的速度不受空格键的影响第一届会议?
我正在尝试使用画布和 javascript 制作简单的 game2d。
由于按下空格键,圆圈应该移动得更快(增加动画功能的变量)。但是如果与墙壁发生碰撞,则应该是游戏结束,那么应该创建新的圆圈。这实际上正在发生。
move(event) {
if (event.keyCode === 65 ) { //left
this.cir.x -= 1
} else if (event.keyCode === 68 ) { //right
this.cir.x += 1
} else if (event.keyCode === 83 ) { //down
if(cir.coll){
this.cir = new cir(1,0);
}
this.cir.x+= 1
} else if (event.key == ' ' ) { // spacebar button
this.dropInterval = 1
if(cir.coll){
this.cir = new cir(1,0) **// for new circle spacebar keydown should be killed temporary so that i should press it again for the new object**
}
}
}
解决方案
如果您只想停止触发空格键 keydown 事件,您可以尝试创建一个布尔值,如“canPressSpace”,当圆圈与墙壁碰撞时,您调用一个函数将此布尔值设置为 false 一段有限的时间或直到某个其他事件将其重新触发。
在空格键 keydown 事件上,只需添加一个if (canPressSpace)
验证。
我不确定这是否会解决您的动画问题,但它应该暂时停止空格键 keydown 事件功能。
推荐阅读
- influxdb - InfluxDB 1.7.2 - 随着时间的推移 Top X
- html - 仅在与主体形状接触时产生粘性效果
- ios - TableView根据单元格宽度水平滚动
- javascript - 在哪里存储访问令牌以供前端使用
- javascript - 为什么我的猫鼬验证回调返回;TypeError:响应不是函数
- json - JSON stringify 不产生预期的 json
- scikit-learn - 如何为 RandomSearchCV 定义具有两个隐藏层的 MLPR
- xcode - Apollo 的检查并运行 apollo-codegen.sh 不起作用?
- android - 获取菜单按下项并将其传递给回收站视图以设置变量
- mysql - 防止在联合全文搜索中出现重复结果