【问题标题】:How to set multiple convex polygons to a shape in Box2d?如何在 Box2d 中将多个凸多边形设置为一个形状?
【发布时间】:2012-06-18 15:13:31
【问题描述】:

我是 Box2d 的新手,我刚刚了解到它不支持凹多边形。我已阅读以解决此问题,我应该使用 2 个(或更多)凸多边形并将它们应用于相同的形状。

不幸的是,我已经找了一个小时来寻找一个如何做到这一点的例子,但找不到一个有效的例子。这是我的代码:

b2PolygonShape spriteShape;    
int num = 6;
        b2Vec2 verts[] = {
            b2Vec2(-32.5f / PTM_RATIO, 52.0f / PTM_RATIO),
            b2Vec2(-60.0f / PTM_RATIO, 26.5f / PTM_RATIO),
            b2Vec2(-58.5f / PTM_RATIO, 17.5f / PTM_RATIO),
            b2Vec2(-34.5f / PTM_RATIO, 7.5f / PTM_RATIO),
            b2Vec2(-11.0f / PTM_RATIO, 25.0f / PTM_RATIO),
            b2Vec2(-17.5f / PTM_RATIO, 47.5f / PTM_RATIO)
        };
        spriteShape.Set(verts, num);

        int num2 = 6;
        b2Vec2 verts2[] = {
            b2Vec2(-26.5f / PTM_RATIO, 1.0f / PTM_RATIO),
            b2Vec2(-34.0f / PTM_RATIO, -13.5f / PTM_RATIO),
            b2Vec2(-26.5f / PTM_RATIO, -32.0f / PTM_RATIO),
            b2Vec2(0.5f / PTM_RATIO, -42.5f / PTM_RATIO),
            b2Vec2(49.0f / PTM_RATIO, -40.5f / PTM_RATIO),
            b2Vec2(49.5f / PTM_RATIO, -14.0f / PTM_RATIO)
        };
        spriteShape.Set(verts2, num2);

这只是用第二个多边形覆盖第一个多边形,而不是组合它们。我怎样才能将它们组合起来?

【问题讨论】:

  • 您不会“将它们应用于相同的形状”,而是制作两个单独的固定装置。

标签: objective-c ios cocos2d-iphone box2d


【解决方案1】:

正如 iforce2d 所说,您应该创建多个固定装置。请看我对这个问题的回答: Box2d multiple fixtures and positioning

【讨论】:

  • 我被另一个网站上的一些错误信息吓跑了。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 2011-01-28
  • 2017-07-05
  • 2020-11-02
  • 2020-03-20
  • 2012-12-02
  • 1970-01-01
相关资源
最近更新 更多