我有一个为曲线生成点的函数。我使用这些点创建代表地面的 box2d 主体。
我尝试了以下两种方法:
生成所有点并将它们存储在数组中。在任意两个连续点之间创建夹具边缘形状。
生成所有点并将它们存储在数组中。创建一个 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/