Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 简单碰撞检测_C++_Objective C_Collision Detection - Fatal编程技术网

C++ 简单碰撞检测

C++ 简单碰撞检测,c++,objective-c,collision-detection,C++,Objective C,Collision Detection,我想写一个平台游戏,以前我做的都是不需要物理的益智游戏。 我只需要简单的碰撞检测,我将为物理引擎提供所有对象的位置,它应该输出: 与任何对象(以及什么对象)碰撞的特定对象类型(项目符号)的所有对象,只是一组对 对于特定对象类型的每个对象(玩家和NPC),如果其位于地面或空中 所有移动/速度/重力/撞击/反射的模拟都将使用自定义代码来完成,因为我想要实现的是一个具有奇怪物理特性的世界。 我应该自己转动引擎吗?我可以使用现有的像花栗鼠/box2d这样的吗?如果我需要实现我自己的,我将如何使碰撞检测不

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

  • 与任何对象(以及什么对象)碰撞的特定对象类型(项目符号)的所有对象,只是一组对
  • 对于特定对象类型的每个对象(玩家和NPC),如果其位于地面或空中
  • 所有移动/速度/重力/撞击/反射的模拟都将使用自定义代码来完成,因为我想要实现的是一个具有奇怪物理特性的世界。
    我应该自己转动引擎吗?我可以使用现有的像花栗鼠/box2d这样的吗?如果我需要实现我自己的,我将如何使碰撞检测不成为一个昂贵的操作?(就像在
    O(n^2)


    我可以使用Objto-C或C++,我更喜欢C++(它应该有更好的性能)。

    < P>如果你正在编写自己的物理,你可能想包括你自己的碰撞检测。还有一些公开可用的免费物理引擎,你可以尝试子弹。http://www.bulletphysics.org)

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


    这是我随机找到的一篇文章:

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

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


    我建议您研究图形和树的数据结构。

    我知道图形和树可能会更好,但它们如何帮助碰撞检测?顶点是对象,但边是什么?碰撞?边从何而来?(x,y)->(z);网格化整个东西将启用“信号”当两个对象坐标连接时发送。这还允许速度信息与方向信息(速度)相结合,以便您可以执行更高级的碰撞检测、碰撞避免(AI)还有碰撞效果。是的,但计算尺寸的简单数学。上次我研究这个问题时,三角形多面体是标准的;只需剥离这些数学属性,计算出相交点,从而计算碰撞信息。