0

Cocos 2d は初めてです。これが非常に基本的なものである場合は、申し訳ありません。

画像から CCMenuItemImage を作成していますが、非網膜デバイスでは正常に動作していますが、網膜デバイス (iPhone および iPad 網膜) の場合、レンダリングされる画像は予想されるサイズの 2 倍になります。ただし、Retina デバイスに使用される画像の解像度は、非 Retina デバイスの解像度の 2 倍です。たとえば、非 Retina デバイスのボタンの解像度が 100 x 100 の場合、Retina デバイスの同じボタンの解像度は 200 x 200 になります (Retina デバイスの解像度は非 Retina デバイスの 2 倍になるため)。

次のコードを使用して CCMenuItemImage を作成しています:-

CCMenuItemImage *startButton = [CCMenuItemImage itemFromNormalImage:startBtnImg selectedImage:startBtnImg target:self selector:@selector(MenuButtonAction:)]; 

Retina デバイスの場合、「startButtonImg」のファイル名は、非 Retina デバイスと比べて 2 倍の解像度になります。

要約すると、Retina デバイスで CCMenuItemImage をレンダリングすると、レンダリングされる画像が 2 倍のサイズになります (このようになるべきではありません)。

私が間違っていることを理解するのを手伝ってください。前もって感謝します!

4

3 に答える 3

2

Retina イメージの名前を -hd で変更します。
例:
SD イメージ -> apple.png [100x100]
HD イメージ -> apple-hd.png [200x200]

コードでは、SD イメージのみを参照してください。たとえば[CCSprite spriteWithFile:@"apple"];
、アプリの構成で Retina サポートを有効にする必要があります。

于 2013-04-18T05:56:09.987 に答える
2

cocos2d の Retina ディスプレイ用の hd サフィックス。たとえば、アプリケーションに画像 img.jpg があるとします。

2 つの画像が必要です img.jpg (100*100) img-hd.jpg (200 *200)

img.jpg は通常の iphone に使用され、img-hd.jpg は hd デバイスに使用されます。

于 2013-04-18T05:56:18.123 に答える
1

このチュートリアルでは、iPhone と iPad の両方に異なるリソースを用意する方法について説明します。どちらも Retina であり、平和的な方法ではありません :) http://www.raywenderlich.com/25736/how-to-make-a-simple-iphone-game-with -cocos2d-2-x-チュートリアル

次の方法で、各ファイルに使用していた接尾辞を CCFileUtils モジュールに知らせるのを忘れていませんか?

// On iPhone HD: "-hd"
    CCFileUtils *sharedFileUtils = [CCFileUtils sharedFileUtils];
    [sharedFileUtils setEnableFallbackSuffixes:NO];             // Default: NO. No fallback suffixes are going to be used
    [sharedFileUtils setiPhoneRetinaDisplaySuffix:@"-hd"];      // Default on iPhone RetinaDisplay is "-hd"
    [sharedFileUtils setiPadSuffix:@"-ipad"];                   // Default on iPad is "ipad"
    [sharedFileUtils setiPadRetinaDisplaySuffix:@"-ipadhd"];    // Default on iPad RetinaDisplay is "-ipadhd"

スプライトを初期化するときに、すべての画像リソースがアプリケーション バンドルにコピーされていることを確認してください。たとえば、次のコードがある場合、4 つの画像が必要です。

projectile.png、projectile-hd.png、projectile-ipad.png、projectile-ipadhd.png

CCSprite *projectile = [CCSprite spriteWithFile:@"projectile.png"];
于 2013-04-19T09:37:41.913 に答える