java - 如何防止多次触发接触监听?
问题描述
在我的游戏中,我使用了很多 Box2D 实体,其中包含多个固定装置。而且我还使用 Contact Listener 来检测不同物体之间的碰撞。不幸的是,我遇到了一个可怕的问题。当身体发生碰撞时,Contact Listener 会检测到不止一次。如何去抖动 Contact Listener?我的日志:
...
postSolve A: brows B: bShape
endContact A: brows B: bShape
endContact A: brows B: bShape
endContact A: brows B: bShape
endContact A: brows B: bShape
endContact A: brows B: bShape
endContact A: brows B: bShape
在我为我身体的每个固定装置分配唯一的用户数据之后。
新日志:
...
endContact A: f-3 B: f-0
endContact A: f-4 B: f-0
endContact A: f-5 B: f-0
endContact A: f-7 B: f-0
解决方案
我不知道您的固定装置是如何设置的,但是您的恢复原状可能是问题(弹性)。尝试增加/减少它。这将减少您的身体如此快速地弹开的可能性。
推荐阅读
- typescript - 当路由器在 Angular 7 中更改时,如何防止 api 请求被取消?
- iphone - iPhone硬件静音按钮静音多个设备上的呼叫
- google-apps-script - 使用“ContactsApp.getContact”检查谷歌联系人下是否存在联系人
- r - 具有时间序列的 ggridges - R
- javascript - 破坏嵌套对象
- android - 为什么我的变量没有显示正确的金额
- google-apps-script - Google Apps 脚本如何将特定工作表导出为 csv 格式
- reactjs - React:状态在具有值的对象上的 setState 之后包含空对象
- unit-testing - 如何使用 Mockito 模拟 Calendar.getInstance 以进行 Java 测试?
- python - 嵌套的 for 循环在第二次迭代后停止并要求用户输入(python 代码中未使用输入函数)