Box2d Loop Shape / 在 Cocos2D 中创建静态地面形状

发布于 2024-11-02 23:48:57 字数 438 浏览 1 评论 0原文

有谁知道在 Box2D(Cocos2D 附带的版本)中创建具有许多(~10000)个顶点的静态地面体的最佳方法是什么。

这就是我现在对三次贝塞尔曲线所做的,它看起来不错,但运行有点慢。

for (int i = 0; i<segments; i++) {
    CGPoint p2 = vertices[i+1];
    CGPoint p1 = vertices[i];
    b2PolygonShape poly;
    poly.SetAsEdge(b2Vec2(p1.x,p1.y), b2Vec2(p2.x, p2.y));
    groundBody->CreateFixture(&poly,0);
}

人们谈论 b2LoopShape 但它似乎没有包含在 Cocos 附带的 Box2d 版本中?

有什么想法吗?

Does anyone know what is the best method to create a static ground body with many (~10000) vertices in Box2D (the version that comes with Cocos2D).

This is what I do now for cubic beziers, it looks fine but runs a bit slow.

for (int i = 0; i<segments; i++) {
    CGPoint p2 = vertices[i+1];
    CGPoint p1 = vertices[i];
    b2PolygonShape poly;
    poly.SetAsEdge(b2Vec2(p1.x,p1.y), b2Vec2(p2.x, p2.y));
    groundBody->CreateFixture(&poly,0);
}

People talk about b2LoopShape but it doesn't seem like it's included in the Box2d version shipped with Cocos?

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

琉璃繁缕 2024-11-09 23:48:57

对于b2LoopShape,您需要将external/Box2d替换为Box2D trunk。

  1. box2d 签出 Box2D 主干。
  2. 将 cocos2d/external/Box2d 替换为 trunk/Box2D/Box2D。
  3. 修改 Xcode 项目以添加 Box2D 文件。
  4. 修改重命名的类的一些代码,例如s/b2DebugDraw/b2Draw/。

For b2LoopShape, you need to replace external/Box2d with Box2D trunk.

  1. checkout Box2D trunk from box2d.
  2. replace cocos2d/external/Box2d with trunk/Box2D/Box2D.
  3. modify Xcode project for added Box2D files.
  4. modify some codes for renamed classes such as s/b2DebugDraw/b2Draw/.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文