我正在学习libgdx。我想用libgdx创建一个2d fps游戏,基本上没有物理环境。在那种情况下,会有很多碰撞(例如,很多子弹击中多个物体)。我需要检查每个精灵矩形与其他精灵的交叉。通过这种方式,可能有数千个精灵,每次用其他999个精灵检查每个精灵并不是一个好主意。
答案 0 :(得分:3)
我想创建一个2d fps游戏
据我所知,FPS的意思是“第一人称射击游戏” - >第一人称视角的射手。这意味着,它是3D 所以请求澄清你的意思。
现在来看碰撞检测问题:
Scene2D
点击检测用于触摸或输入
mouseevents。因此,如果触摸Actor
,则用于检测
点击... Box2D
是一个2D物理引擎,它不仅可以进行碰撞
检测,但它也可以做碰撞响应
作为物理模拟(重力和类似的东西)。 Intersector
课程,您可以将其用于
overlap
测试。组织/碰撞的管理
检测取决于你。如果你告诉我们你的游戏应该如何运作,你的世界应该如何管理等等,那会更好
例如,如果您的世界是基于图标的,则墙和玩家之间的碰撞检测可以是简单的检查,如果图块被占用 - >碰撞,如果不是 - >没有碰撞。
了解对象的形状也很重要。矩形 - 矩形碰撞检测不同于矩形圆碰撞检测
所以现在有3个解决方案可以解决你的问题:
- 使用Box2D
并阅读有关如何使用它的教程
- 做一些关于碰撞检测的研究,阅读教程并看看一些示例项目
- 向我们提供有关游戏,物体,形状等的更多信息。