java - 用 box2d 检测物体碰撞的干净方法

标签 java box2d libgdx

我最近一直在研究box2d(在带有libgdx的java中),并一直在尝试创建我自己的自定义反弹效果(我在第一次反弹后增加了Restitution)

为了进行测试,我只是检查了对象的位置并等待第一次反弹。

但现在我想实际实现这个并遇到一个问题:如何检测 box2d 中 2 个特定对象的碰撞?

我找到了这个教程: box2d collision detection - 但我非常不愿意使用该代码。必须有一种更简单、更清晰的方法来检测两个对象之间的碰撞(无需设置用户数据并使用巨大的 if() 条件检查所有碰撞...)

谁能帮帮我吗? (假设我不仅充满希望而且实际上有更好的方法)

最佳答案

子类b2ContactListener类来处理碰撞并重新实现碰撞回调。然后只需:

MyContactListener *listener = new MyContactListener();
myB2World->SetContactListener(listener);

关于java - 用 box2d 检测物体碰撞的干净方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7447811/

相关文章:

java - 为什么我在 libGDX 中的纹理上出现黑色轮廓/边缘?

java - 如何在大型文本文件中找到第 n 次出现(反向)的单词?

java - 如何获取物体在 box2D 世界步骤中移动的距离?

java - Box2d 与 AndEngine 异常创建固定装置

java - Box2D 碰撞不会调用我自己的 CollisionListener

java - 在java中创建同一个类的多个实例

java - libGDX 将我的系统从像素更改为单位

java - 如何使用@ComponentScan 注解扫描多个路径?

java - Jtable 实现

java - 在 jackson 中将格式错误的日期反序列化为空