Java 如何在libgdx中检测两个精灵之间的碰撞?
我正在学习libgdx。我想用libgdx创建一个2d fps游戏,它基本上没有物理环境。在这种情况下,会发生大量碰撞(例如,大量子弹击中多个对象)。我需要检查每个精灵的矩形与其他精灵的相交。这样一来,可能会有上千个雪碧,每次都用其他999个雪碧检查每个雪碧绝对不是一个好主意Java 如何在libgdx中检测两个精灵之间的碰撞?,java,android,libgdx,box2d,Java,Android,Libgdx,Box2d,我正在学习libgdx。我想用libgdx创建一个2d fps游戏,它基本上没有物理环境。在这种情况下,会发生大量碰撞(例如,大量子弹击中多个对象)。我需要检查每个精灵的矩形与其他精灵的相交。这样一来,可能会有上千个雪碧,每次都用其他999个雪碧检查每个雪碧绝对不是一个好主意 libgdx的scene2d已经命中了检测api,这能解决我的问题吗? 或 我应该使用box2d碰撞检测? 或 在libgdx中还有其他方法检测冲突吗 我想创建一个2d fps游戏 据我所知,FPS的意思是“第一人称射
- libgdx的scene2d已经命中了检测api,这能解决我的问题吗? 或
- 我应该使用box2d碰撞检测? 或
- 在libgdx中还有其他方法检测冲突吗
所以请澄清你的意思 现在谈谈碰撞检测问题:
Scene2D
s点击检测用于触摸或触摸等输入
鼠标事件。因此,它用于检测,如果触摸到参与者
,
点击Box2D
是一个2D物理引擎,它不仅可以进行碰撞
检测,但它也可以做碰撞响应
就像物理模拟一样(重力之类的)李>
重叠
测试。冲突的组织/管理
检测由你决定例如,如果您的世界是平铺的,则墙和播放器之间的碰撞检测可以是一个简单的检查,如果平铺被占用->碰撞,如果没有->无碰撞。
此外,了解对象的形状也很重要。矩形-矩形碰撞检测不同于矩形-圆形碰撞检测。
现在有3种解决方案:
-使用
Box2D
并阅读有关如何使用它的教程-对碰撞检测进行一些研究,阅读教程并查看一些示例项目
-给我们更多关于游戏、游戏对象、游戏形状等的信息。明白了。。首先,我的游戏不是基于瓷砖的。我不知道第一人称射击游戏是mean的3d,但我的游戏就像只在顶视图下玩《使命召唤》。所以它是2d的,不需要添加物理,会有很多敌人的,车辆,子弹,掩体等。。正如你提到的Intersector类和一些碰撞检测算法解决了我的问题?所以它是一个自上而下的射手。好的,
Intersector
类有一些方法可以告诉您,如果某些特定对象重叠。你可以看看它的所有方法,你应该考虑你需要什么方法。例如,Intersector
有一个方法overlappliconxpolygons
,可以测试两个凸多边形之间的碰撞。但是管理本身(何时以及如何调用Intersector
方法)以及冲突响应取决于您。