我将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相比较或者有更好的方法吗?感觉对我来说不自然......
答案 0 :(得分:0)
我将CCSprite子类化为PhysicsSprite并添加了b2Body * body作为属性。 这样我就可以直接访问正文并调用GetPosition()。
编辑:我将其添加为成员(不是属性)并为其编写了一个getter。
@interface PhysicsBall:CCSprite{
b2Body* ballBody;
}
-(b2Body*)getPhysicsBody;
,其中
-(b2Body*)getPhysicsBody{
return ballBody;
}