0

我将cocos2d精灵添加到userDatabox2 身体的身体定义中。

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

每个精灵都有标签。有许多精灵。我不知道如何找到只有精灵标签的身体。我可以通过使用找到精灵本身getChildByTag,但是如何定位身体?遍历所有主体并将 userData 与找到的精灵进行比较,还是有更好的方法?感觉不太自然。。。

4

1 回答 1

0

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

编辑:我将它添加为成员(不是属性)并为它写了一个吸气剂。

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

在哪里

-(b2Body*)getPhysicsBody{
    return ballBody;
}
于 2013-09-23T19:24:12.463 回答