简单的碰撞检测

Simple collision detection

本文关键字:碰撞检测 简单      更新时间:2023-10-16

我想编写一款平台游戏,我之前所做的都是益智游戏,不需要物理元素。
我所需要的只是简单的碰撞检测,我将提供给物理引擎的是所有物体的位置,它应该输出:

  1. 与任何对象(和什么对象)碰撞的特定对象类型(子弹)的所有对象,只是一对的列表。
  2. 对于特定对象类型(玩家和npc)的每个对象,如果它在地面或半空中。

所有移动/速度/重力/命中/反射的模拟将使用自定义代码完成,因为我想实现的是一个具有奇怪物理的世界。
我应该自己转引擎吗?我可以使用现有的像花栗鼠/box2d?如果我需要实现我自己的碰撞检测,我将如何使一个不昂贵的操作?(就像一个天真的实现,只是检查O(n^2)中的所有内容。
我可以使用objective-c或c++,我更喜欢c++(它应该有更好的性能)。

如果你正在编写自己的物理,你可能想要包含自己的碰撞检测。还有一些公开的免费物理引擎,你可以尝试一下。(http://www.bulletphysics.org)

但你可能只想在谷歌上搜索碰撞检测算法,这可能适用于你正在制作的游戏类型,你需要测试的交叉点类型。

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

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

是的,你可以在现有的库中找到这种特性,但是你可以从编写自己的库中学到更多。

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