简单的碰撞检测

时间:2011-12-15 14:06:38

标签: c++ objective-c collision-detection

我想写一个平台游戏,我之前所做的只是益智游戏而不需要物理 我需要的只是简单的碰撞检测,我将提供的物理引擎是所有对象的位置,它应该输出:

  1. 与任何对象(以及对象)发生碰撞的特定对象类型(项目符号)的所有对象,只是对的列表。
  2. 对于特定对象类型的每个对象(玩家和npcs),如果它在地面或半空中。
  3. 所有移动/速度/重力/命中/反射的模拟都将使用自定义代码完成,因为我想要实现的是一个具有奇怪物理特性的世界。 我应该自己动一下吗?我可以使用像chipmunk / box2d这样的现有产品吗?如果我需要实现自己的,我将如何进行碰撞检测而不是昂贵的操作? (就像只是检查O(n^2)中所有内容的天真实现 我可以使用objective-c或c ++,我更喜欢c ++(它应该有更好的性能)。

2 个答案:

答案 0 :(得分:1)

如果您正在编写自己的物理,则可能需要包含自己的碰撞检测。还有一些公开可用的免费物理引擎,你可能会像子弹一样尝试。 (http://www.bulletphysics.org)

但您可能只想对谷歌搜索碰撞检测算法,这些算法可能适用于您需要测试的各种交叉点所使用的游戏类型。

这是我随机发现的一篇文章:http://www.gamespp.com/algorithms/collisionDetection.html

答案 1 :(得分:1)

对于这类问题,我建议您编写自己的库。

是的,您可以在现有的库中找到这种功能,但是您可以通过编写自己的库来学到更多。

我建议查看图形和树形数据结构。

相关问题