cocos2d-iphone – Box2d多个夹具和定位

cocos2d-iphone – Box2d多个夹具和定位,第1张

概述我试图在Box2d(在Cocos2d中)创建一个“U”形状,通过加入3个矩形,如下所示:| _ | 这听起来像关节不是正确的解决方案在这里,因为我不想要任何运动,所以我已经创建了一个主体是中间位和两个夹具的两侧.我把这两边添加到中间位,就像这样: mainBody->CreateFixture(&leftFixtureDef);mainBody->CreateFixture(&rightFixt 我试图在Box2d(在Cocos2d中)创建一个“U”形状,通过加入3个矩形,如下所示:| _ |

这听起来像关节不是正确的解决方案在这里,因为我不想要任何运动,所以我已经创建了一个主体是中间位和两个夹具的两侧.我把这两边添加到中间位,就像这样:

mainBody->CreateFixture(&leftFixtureDef);mainBody->CreateFixture(&rightFixtureDef);

这样做,但是两个侧面装置都被添加到mainBody的中心.我似乎无法解决如何相对于主体定位固定装置.将精灵/节点附加到固定装置并改变位置似乎没有什么不同.

有任何想法吗?

非常感谢.

它是一个形状的属性.我没有为b2CircleShape找到这样的属性,但是b2polygonShape具有m_centroID参数 – 它是相对于身体的形状中心坐标.指定它具有形状的有效位置.

对于b2polyganShape有一个方法setAsBox(w,h),但是有一个更复杂的一个:

setAsBox(float32 wIDth,float32 height,const b2Vec2 &center,float32 rotation)

使用此方法或指定质心手册.

这是U形的代码

b2BodyDef bDef;bDef.type = b2_dynamicBody;bDef.position = b2Vec2(0,0);b2Body *body = world_->CreateBody(&bDef);b2polygonShape shape;const float32 density = 10;shape.SetAsBox(1,0.1);body->CreateFixture(&shape,density);shape.SetAsBox(0.1,1,b2Vec2(-1 + 0.1,1),0);body->CreateFixture(&shape,b2Vec2(1 - 0.1,density);
总结

以上是内存溢出为你收集整理的cocos2d-iphone – Box2d多个夹具和定位全部内容,希望文章能够帮你解决cocos2d-iphone – Box2d多个夹具和定位所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1085778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存