c++ - 哪个对象更适合使用 b2EdgeShape 与 b2ChainShape 创建曲线?

标签 c++ ios c xcode box2d

我有一个为曲线生成点的函数。我使用这些点创建代表地面的 box2d 主体。

我尝试了以下两种方法:

  1. 生成所有点并将它们存储在数组中。在任意两个连续点之间创建夹具边缘形状。

  2. 生成所有点并将它们存储在数组中。创建一个 b2ChainShape,并创建链形状的夹具。

测试时,两条曲线看起来同样平滑(毕竟它们使用相同的点)。根据 Xcode 中的时间分析器工具,我用来生成正文的方法花费的运行时间大致相同(几乎低至毫秒)。

有什么理由让我应该选择其中一个而不是另一个?

最佳答案

根据手册:

Chain Shapes

The chain shape provides an efficient way to connect many edges together to construct your static game worlds. Chain shapes automatically eliminate ghost collisions and provide two-sided collision.

从问题的标题来看,您正在考虑创建一系列单独的边,而不是创建单个链形状。链形状对于创建“大量边缘”更有效。

从实现的角度来看,我不能说碰撞检测是否存在性能差异(我的猜测是没有,因为您仍在寻找各个边缘之间的碰撞)。

关于c++ - 哪个对象更适合使用 b2EdgeShape 与 b2ChainShape 创建曲线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20866626/

相关文章:

iphone - 将静态字典数据添加到我的静态数组中

似乎无法将输入与文本文件中的值匹配

c++ - 检查跳转缓冲区是否有效(非本地跳转)

c++ - 在循环中 boost Thread_Group 非常慢

ios - 如何向下移动textView光标?

iphone - 在 UI 自动化工具的脚本中,如何导入另一个脚本?

c - memcpy 的未定义行为

c++ - 在映射中存储没有默认构造函数的不可复制对象 (C++11)

c++ - C/C++ : casting away volatile considered harmful?

c++ - 我的 VBO 有问题