1

Cocos2d 2.0を使用してiPadゲームで作業していますが、新しいiPad(Retinaディスプレイ)のHD画像を読み込むときに問題が発生します。しかし、コードの実行中にHD画像が自動的に読み込まれない理由を理解できません。

追加した後[director enableRetinaDisplay:YES];でも、まだ機能していません。画像をロードするときのコードサンプルは次のとおりです。

MainBG = [CCSprite spriteWithFile:@"menuBackground-ipad.png"];
CGSize ScreenSize = [[CCDirector sharedDirector]winSize];
MainBG.position = ccp(ScreenSize.height/2,ScreenSize.width/2);
[self addChild:MainBG z:0];

プロジェクトリソースに別の画像menuBackground-ipadhd.pngがあります(Xcodeからも表示できます)。

誰でも助けることができますか?

4

2 に答える 2

1

私にとってはcocos2D 2.0で動作しています

その menuBackground-ipad.png を menuBackground.png に変更します これらすべての行が最後の appDelegate と pushScene にあることを確認してください。また、レイヤー クラスで init の代わりに onEnter を使用します。

 if( ! [director_ enableRetinaDisplay:YES] )
        { 
            CCLOG(@"Retina Display Not supported");
        }

    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"

    [director_ pushScene: [IntroLayer scene]]; 

//レイヤー内..

-(void)onEnter
{
    [super onEnter];
    MainBG = [CCSprite spriteWithFile:@"menuBackground.png"];
    CGSize ScreenSize = [[CCDirector sharedDirector]winSize];
    MainBG.position = ccp(ScreenSize.height/2,ScreenSize.width/2);
    [self addChild:MainBG z:0];
}
于 2012-09-23T13:34:44.333 に答える
0

ファイルをロードするときは、ipad / hd/etcファイルのサフィックスを指定しないでください。あなたの問題はここで-ipadサフィックスを使用することによって引き起こされます:

MainBG = [CCSprite spriteWithFile:@"menuBackground-ipad.png"];

接尾辞を削除して、cocos2dが正しい画像を選択できるようにします。

MainBG = [CCSprite spriteWithFile:@"menuBackground.png"];
于 2012-09-24T09:08:17.133 に答える