cocos2d-iphone – Box2d多个夹具和定位
发布时间:2020-12-14 17:29:42 所属栏目:百科 来源:网络整理
导读:我试图在Box2d(在Cocos2d中)创建一个“U”形状,通过加入3个矩形,如下所示:| _ | 这听起来像关节不是正确的解决方案在这里,因为我不想要任何运动,所以我已经创建了一个主体是中间位和两个夹具的两侧.我把这两边添加到中间位,就像这样: mainBody-CreateFixtu
我试图在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 ¢er,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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |