我正在尝试将精灵纹理添加到cocos2d中的box2d fixture。 目前我有一个动态的身体(用精灵纹理)和我试图添加纹理的夹具正被添加到身体。
这是我的代码:
b2PolygonShape fixtureShape;
fixtureShape.SetAsBox(0.6f,0.9f,b2Vec2(-1 + 0.1, 1), 45);
b2FixtureDef fixtureDef;
fixtureDef.shape = &fixtureShape;
fixtureDef.density = 0.1f;
b2BodyDef bodyDef;
bodyDef.type = b2_dynamicBody;
b2Body *body = world->CreateBody(&bodyDef);
b2CircleShape dynamicBox;
b2FixtureDef mainFixtureDef;
mainFixtureDef.shape = &dynamicBox;
mainFixtureDef.density = 0.1f;
body->CreateFixture(&mainFixtureDef);
body->CreateFixture(&fixtureDef);
CCPhysicsSprite *sprite = [CCPhysicsSprite spriteWithSpriteFrameName:@"sprite1.png"];
[parent addChild:sprite];
[sprite setPTMRatio:PTM_RATIO];
[sprite setB2Body:body];
[sprite setPosition: ccp( p.x, p.y)];
我无法找到任何关于向固定装置添加精灵的文档,是否有人知道是否可能?
答案 0 :(得分:1)
是的,这是可能的。但你必须自己做。夹具是附在b2body
上的形状(带有道具)。它与将孩子添加到CCNode
看起来非常相似。
因此,您可以创建根节点(只是分组CCNode
)并将其位置/旋转与b2Body
转换同步。向主体添加灯具时 - 将该灯具的精灵添加到根节点。并按照放置夹具的方式定位它。
答案 1 :(得分:0)
是的,您可以通过将sprite设置为fixture的用户数据来完成此操作。并根据世界中的夹具位置设置精灵位置