0

我正在尝试将精灵纹理添加到 cocos2d 中的 box2d 夹具。目前我有一个动态的身体(用精灵纹理),我试图添加纹理的夹具被添加到身体。

这是我的代码:

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)];

我还没有找到任何关于将精灵添加到固定装置的文档,有人知道这是否可能吗?

4

2 回答 2

1

对的,这是可能的。但是你必须自己做。固定装置是附加到b2body. 它看起来与将孩子添加到CCNode.

因此,您可以创建一个根节点(只是一个分组CCNode)并将其位置/旋转与b2Body转换同步。将夹具添加到主体时 - 将该夹具的精灵添加到根节点。并以与定位夹具相同的方式定位它。

于 2013-08-29T19:29:28.597 回答
0

是的,您可以通过将 sprite 设置为夹具的用户数据来做到这一点。并根据世界中的夹具位置设置精灵

于 2013-11-18T10:22:33.877 回答