gpt4 book ai didi

c++ - Box2D 中大型静态边缘地形的性能问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:49:33 26 4
gpt4 key购买 nike

我想在我制作的游戏中支持非常大的世界。这通常不是问题,因为我可以剔除大部分世界,因为它不是一次可见的。然而,Box2D 似乎并不喜欢我的想法!

我的地形目前由大约 1000 个边缘形状组成。但是,仅此一项似乎就可以正常工作:即使在我只添加了几个(~25)个动态对象(小圆圈)之后,性能也在急剧下降!

  • 为什么会这样,动态树应该取消所有未受影响的静态地形很早就形成了没有性能损失,不应该吗?
  • (如何)我可以解决这个问题?

最佳答案

答案是因为边缘形状不会与其他边缘形状发生碰撞。

来自手册:

Edge shapes are line segments. These are provided to assist in making a free-form static environment for your game. A major limitation of edge shapes is that they can collide with circles and polygons but not with themselves. The collision algorithms used by Box2D require that at least one of two colliding shapes have volume. Edge shapes have no volume, so edge-edge collision is not possible.

因此,即使您有许多边缘形状,因为它们不会相互碰撞,您也不会看到性能下降。添加一些对象后,box2d 就会开始检查碰撞。

关于c++ - Box2D 中大型静态边缘地形的性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6087922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com