1

私が Java コードを書いていた頃は、「グリッド バッグ」やボックスなどのレイアウト マネージャーがありました。

私は Cocos2D-X を使用してゲームに取り組んでおり、ハードコードされた位置ではなく、レイアウトに基づいてオブジェクトを画面に配置する際に問題が発生しています。デバイス間のピクセルの違いが問題の原因です。

Cocos2D にはこれに対処する方法があることは知っていますが、私のアートワークは大きく高品質であり、デバイスに基づいてサイズを変更したいと考えています。

だから私はネイティブOpenGLに行くことを考えていますが、レイアウトマネージャーがすでに利用可能かどうかわからないかもしれません。

OpenGL でオブジェクトをレイアウトする方法について誰でも議論できますか? C++

4

2 に答える 2

0

アートワークを配置するためにピクセル単位で作業する代わりに、OpenGL を使用する必要はありません。画面のパーセンテージに基づいて実際に配置できます。

背景画像の場合は、CCSize size = CCDirector::....->getWinSize(); で配置できます。x = size.width/2; y = サイズ.高さ/2; image->setPosition(x,y); 画像のアンカーポイントが中央の場合、画像は中央に配置されます。

作品数が多いと話は別です。

ADDED MORE(更新)

retina = 2048×1536  
normal = 1024×768
retinaWidth = normal.width * 2;//(2048)
retinaHeight = normal.height * 2;//(1536)


spriteInNormalRes{
    x = 250px(which you will define with the percentage, in my first answer)
    y = 264px(which you will define with the percentage, in my first answer)
}
spriteInRetinaRes{
    x = spriteInNormalRes.x * 2 
    y = spriteInNormalRes.x * 2 
}

x、y を 2 倍にしてスプライトを配置できます。+カスタムscaleRatioを使用して、目的のサイズにサイズ変更します。

注: 必ずしも値を 2 倍にすることはできません。正しい値をテストしてください。

于 2013-06-10T21:53:14.183 に答える