I am using Ray Wenderlich's code from here: http://www.raywenderlich.com/606/how-to-use-box2d-for-just-collision-detection-with-cocos2d-iphone
This is the code I am using to add a b2Body/Def/Fixture to my CCSprite:
- (void)addBoxBodyForSprite:(CCSprite *)sprite {
b2BodyDef spriteBodyDef;
spriteBodyDef.type = b2_dynamicBody;
spriteBodyDef.position.Set(sprite.position.x/CTM_RATIO, sprite.position.y/CTM_RATIO);
spriteBodyDef.userData = sprite;
b2Body *spriteBody = world->CreateBody(&spriteBodyDef);
b2PolygonShape spriteShape;
spriteShape.SetAsBox(sprite.contentSize.width/CTM_RATIO/2, sprite.contentSize.height/CTM_RATIO/2);
b2FixtureDef spriteShapeDef;
spriteShapeDef.shape = &spriteShape;
spriteBody->CreateFixture(&spriteShapeDef);
}
Instead of PTM_Ratio I chose CTM_Ratio. Anyway my b2Bodies are not properly positioned on my CCSprites.
So to be explain my issue I'll say my sprite is 50 pixels wide by 100 pixels tall. It seems like my b2Body on that sprite is like 60 pixels wide by 110 pixels tall.
I know Box2D uses meters but is there any way to PERFECTLY but the b2Body onto my CCSprite maybe by using Pixels?
Thanks!