C++ 简单碰撞检测
我想写一个平台游戏,以前我做的都是不需要物理的益智游戏。C++ 简单碰撞检测,c++,objective-c,collision-detection,C++,Objective C,Collision Detection,我想写一个平台游戏,以前我做的都是不需要物理的益智游戏。 我只需要简单的碰撞检测,我将为物理引擎提供所有对象的位置,它应该输出: 与任何对象(以及什么对象)碰撞的特定对象类型(项目符号)的所有对象,只是一组对 对于特定对象类型的每个对象(玩家和NPC),如果其位于地面或空中 所有移动/速度/重力/撞击/反射的模拟都将使用自定义代码来完成,因为我想要实现的是一个具有奇怪物理特性的世界。 我应该自己转动引擎吗?我可以使用现有的像花栗鼠/box2d这样的吗?如果我需要实现我自己的,我将如何使碰撞检测不
我只需要简单的碰撞检测,我将为物理引擎提供所有对象的位置,它应该输出:
我应该自己转动引擎吗?我可以使用现有的像花栗鼠/box2d这样的吗?如果我需要实现我自己的,我将如何使碰撞检测不成为一个昂贵的操作?(就像在
O(n^2)
我可以使用Objto-C或C++,我更喜欢C++(它应该有更好的性能)。 < P>如果你正在编写自己的物理,你可能想包括你自己的碰撞检测。还有一些公开可用的免费物理引擎,你可以尝试子弹。http://www.bulletphysics.org) 但你可能只想在谷歌上搜索碰撞检测算法,这些算法可能适用于你正在进行的游戏类型,以及你需要测试的交叉点类型
这是我随机找到的一篇文章:对于这类问题,我建议您编写自己的库 是的,您可以在现有的库中找到这种特性,但是您将从编写自己的库中学到更多
我建议您研究图形和树的数据结构。我知道图形和树可能会更好,但它们如何帮助碰撞检测?顶点是对象,但边是什么?碰撞?边从何而来?(x,y)->(z);网格化整个东西将启用“信号”当两个对象坐标连接时发送。这还允许速度信息与方向信息(速度)相结合,以便您可以执行更高级的碰撞检测、碰撞避免(AI)还有碰撞效果。是的,但计算尺寸的简单数学。上次我研究这个问题时,三角形多面体是标准的;只需剥离这些数学属性,计算出相交点,从而计算碰撞信息。