何时使用CC_CONTENT_SCALE_FACTOR()?

我有点困惑什么时候在我的应用程序中使用CC_CONTENT_SCALE_FACTOR()。 我使用Box2D进行碰撞检测,并创build一个b2Body的顶点。 现在我应该只用PTM_Ratio还是用PTM_Ratio乘以CC_CONTENT_SCALE_FACTOR()来划分每个点?

我应该在我的应用程序中的任何地方使用CC_CONTENT_SCALE_FACTOR(),如果我不处理像素? 我应该只使用CC_CONTENT_SCALE_FACTOR()GLESDebugDraw像这样?

_debugDraw = new GLESDebugDraw( ptmRatio * CC_CONTENT_SCALE_FACTOR());

谢谢!

Box2D世界并不关心它被渲染的像素数量。Box2D完全忽略了屏幕分辨率,因此,不pipe是否在Retina显示设备上,都不应该缩放任何内容。

目前只有一个方面,您可能需要CC_CONTENT_SCALE_FACTOR,那是在处理tilemaps时。 如果我没有记错,tileset宽度和高度属性是以像素为单位给出的,而不是点数。 因此,您需要按CC_CONTENT_SCALE_FACTOR除以得到正确的点数。 不知道为什么这不是由内部的cocos2d完成的。

所有由cocos2d使用的位置都是以点为单位的。 在视网膜装置的情况下,一个点等于两个像素。 当你需要直接使用CC_CONTENT_SCALE_FACTOR()的情况很less见,并且与box2d不相关。 在使用box2d的情况下,您只能使用ptmRatio在box2d的坐标(米)和cocos2d的坐标(点)之间进行转换