2012-01-19 10 views
2

現在、私はこのようなb2Fixtureを作成:b2ポリゴンシェイプ/ b2網膜ディスプレイのサイズが2倍になっていますか?

b2PolygonShape spriteShape; 
    int num = 3; 
    b2Vec2 verts[] = { 
     b2Vec2(-29.5f/PTM_RATIO, -49.0f/PTM_RATIO), 
     b2Vec2(10.0f/PTM_RATIO, -49.0f/PTM_RATIO), 
     b2Vec2(34.2f/PTM_RATIO, -9.2f/PTM_RATIO), 
    }; 
    spriteShape.Set(verts, num); 
    bodyFixture.shape = &spriteShape; 
    bodyCharacter->CreateFixture(&bodyFixture); 

問題は、網膜上でのサイズが倍増すると思わ表示されることである。このための理由がある、と私はそれように作るのですかそうならば同じサイズのままなので、どんなデバイスでもうんざりしませんか?

ありがとうございます!

+0

を働いた方法PTM_RATIO、あなたの世界と(おそらくあなたはそれを使用している)のデバッグを設定描画されていますか? – jrtc27

+0

最初に聞いてみましょう、私のPTM_Ratioはすべてのデバイスに普遍的であると思われますか、それとも違うのですか? –

+0

Universal - cocos2dとbox2dはピクセルではなく、ポイントとメーターでそれぞれ動作します。 – jrtc27

答えて

4

私はあなたと同じ問題に直面しました。 Scale Factorの内容にPTM_RATIOを乗算しました。

あなたは以下のようにコードを試してみて、それをチェックアウトすることができます...それは私のため

int num = 3; 
b2Vec2 verts[] = { 
    b2Vec2(-29.5f/(PTM_RATIO * CC_CONTENT_SCALE_FACTOR()), -49.0f/(PTM_RATIO * CC_CONTENT_SCALE_FACTOR())), 
    b2Vec2(10.0f/(PTM_RATIO * CC_CONTENT_SCALE_FACTOR()), -49.0f/(PTM_RATIO * CC_CONTENT_SCALE_FACTOR())), 
    b2Vec2(34.2f/(PTM_RATIO * CC_CONTENT_SCALE_FACTOR()), -9.2f/(PTM_RATIO * CC_CONTENT_SCALE_FACTOR())), 
}; 
+0

美しい!それは完全に動作します! :) –

+0

ありがとう! @iBradApps – Marine

0

PTM_RATIOにCC_CONTENT_SCALE_FACTOR()が乗算されていないと思います。このarticle for a number of possible solutionsを参照してください。

+0

あなたは私がそれを増やすべきかどうかを言っていますか?そうでない場合は、私の問題の解決策は何でしょうか? –

+0

投稿を明確にしました。 – LearnCocos2D

関連する問題