0

我对 cocos2d 中的点有点困惑。我有通用游戏,当我以点为单位设置身体位置时,它适用于所有设备(iPhone、iPhone HD、iPad、iPad HD)。我用 cocos2d 后缀制作了 4 种尺寸的纹理,效果也很好。

但我有身体(b2CircleShape),我需要设置这个圆的 m_radius。我有这行:

b2CircleShape myDynamicBody;
myDynamicBody.m_radius=0.48;

值 0.48 针对 iPhone HD 进行了优化,它在 iPhone(iPhone 和 iPhone HD)上都运行良好,但在 iPad 和 iPad HD 设备上它非常小。我该怎么办?检查设备类型,当我发现 iPad 将其乘以 1.33 时(当我尝试将其乘以 1.33 时,它在两台 iPad 上都可以正常工作)。或者有没有更好(或推荐)的方法,如何解决这个问题?

谢谢你的建议

4

1 回答 1

1

您应该在 iPad 上调整点对表 (PTM_RATIO)。

'points' 的原因是 Box2d 被调整为对 0.1 到 10 米之间的物体进行物理模拟,典型的物体约为 1x1 米。它仍然适用于这些尺寸之外的物体,但可靠性会降低。

另一方面,您的屏幕分辨率约为 320x480 或 1024x768 点。因此,我们需要一种将精灵表示转换为适合 Box2d 的大小的方法。为此,我们使用“点对米”比率 (PTM)。

如果您的典型精灵是 64x64,您应该选择 64 的 PTM 比率。这将使 box2d 将您的 64x64 精灵视为 1x1,这是在其上运行模拟的理想尺寸。

解释了这一点后,PTM_RATIO 在手机和平​​板电脑外形尺寸之间变化的原因现在很明显:这是因为它们具有不同的分辨率。iPhone 上 64x64 的精灵在平板电脑上约为 128x128。

因此,要在 ipad 上获取 PTM_RATIO,请在 iPhone 上选择一个精灵,然后在 iPad 上查看相应的尺寸。现在将 iPhone PTM 乘以这两个图像的大小之比。

于 2013-01-14T22:29:07.313 回答