0

アプリで CC_CONTENT_SCALE_FACTOR() をいつ使用するかについて少し混乱しています。衝突検出には Box2D を使用し、頂点の b2Body を作成します。ここで、各ポイントを PTM_Ratio だけで割るか、または PTM_Ratio に CC_CONTENT_SCALE_FACTOR() を掛けたもので割るべきですか?

ピクセルを扱っていない場合、アプリのどこでも CC_CONTENT_SCALE_FACTOR() を使用する必要がありますか? このように GLESDebugDraw には CC_CONTENT_SCALE_FACTOR() のみを使用する必要がありますか?

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

ありがとう!

4

2 に答える 2

2

Box2D の世界では、レンダリングされるピクセル数は気にしません。Box2D は画面の解像度を完全に無視するため、Retina ディスプレイ デバイスを使用しているかどうかに関係なく、コンテンツをスケーリングしたり、スケーリングしたりすべきではありません。

現在、CC_CONTENT_SCALE_FACTOR が必要になる可能性のある側面は 1 つだけで、それはタイルマップを操作する場合です。私の記憶が正しければ、タイルセットの幅と高さのプロパティはポイントではなくピクセルで指定されます。したがって、正しいサイズをポイント単位で取得するには、CC_CONTENT_SCALE_FACTOR で割る必要があります。内部で cocos2d によって行われない理由がわかりません。

于 2012-06-26T16:36:33.463 に答える
0

all the positions, that are used by cocos2d are in points. In case of retina device one point is equal to two pixels. The situations when you need to use CC_CONTENT_SCALE_FACTOR() directly are rare and are not relatieve to the box2d. In case of using box2d you have only use ptmRatio to make translations between box2d's coordinates in meters and cocos2d's coordinates in points

于 2012-06-26T10:47:08.080 に答える