I’m little bit confused by points in cocos2d.
I have universal game and when I set possition of body in points, it works well over all devices (iPhone, iPhone HD, iPad, iPad HD). I made textures in 4 sizes with cocos2d suffix and it works well too.
But I have body (b2CircleShape) and i need to set m_radius of this circle.
I have this lines:
b2CircleShape myDynamicBody;
myDynamicBody.m_radius=0.48;
Value 0.48 is optimized for iPhone HD and it works well on both iPhone (iPhone and iPhone HD) but on iPad and iPad HD devices it is very small. What should I do? Check type of device and when I find iPad multiply it in 1.33 (when I tried to multiply it in 1.33 it worked fine on both iPads).
Or is there any better (or recomended) way, how to solve this problem?
Thank you for advices
You should adjust your points-to-meter (PTM_RATIO) on iPad.
The reason for ‘points’, is that Box2d is tuned to run physics simulations for bodies between 0.1 and 10 meters, with a typical body being about 1×1 meter. It will still work for bodies outside of these sizes, but will be less reliable.
On the other hand, you’ve got a screen with either ~320×480 or 1024×768 points of resolution. Therefore we need a way to convert the sprite representation to a size that is suitable for Box2d. For this we use the ‘points-to-meter’ ration (PTM).
If your typical sprite is 64×64 you should choose a PTM ratio of 64. This will make box2d see you 64×64 sprite as 1×1, which is an ideal size to run simulations on it.
Having explained that, the reason that the PTM_RATIO varies between phone and pad form factors is now obvious: Its because they have different resolutions. A sprite that is 64×64 on iPhone would be approx 128×128 on tablet.
So to get your PTM_RATIO on ipad, choose a sprite on iPhone and look at the corresponding size on iPad. Now multiply the iPhone PTM by the ratio of the sizes beteen those two images.