如何找到box2的身体?

时间:2013-09-23 18:46:19

标签: ios cocos2d-iphone box2d box2d-iphone

我将cocos2d精灵添加到box2 body的正文定义userData中。

b2BodyDef spriteBodyDef;
spriteBodyDef.type = b2_dynamicBody;
spriteBodyDef.position.Set(...);
spriteBodyDef.userData = (__bridge void*)sprite;
b2Body *spriteBody = _world->CreateBody(&spriteBodyDef);

每个精灵都有标签。有很多精灵。我不确定如何找到只有精灵标签的身体。我可以使用getChildByTag找到sprite本身,但是如何找到body?迭代所有实体并将userData与sprite相比较或者有更好的方法吗?感觉对我来说不自然......

1 个答案:

答案 0 :(得分:0)

我将CCSprite子类化为PhysicsSprite并添加了b2Body * body作为属性。 这样我就可以直接访问正文并调用GetPosition()。

编辑:我将其添加为成员(不是属性)并为其编写了一个getter。

@interface PhysicsBall:CCSprite{
    b2Body* ballBody;
}
-(b2Body*)getPhysicsBody;

,其中

-(b2Body*)getPhysicsBody{
    return ballBody;
}