リソース ディレクトリ内のファイルがメイン バンドル内にあると認識されないという問題が発生しています。
texturePacker を使用して pvr ファイル形式を使用してテクスチャ アトラスを作成しています。texturePacker の出力は、xxx_iPhone-hd.pvr.ccz と xxx_iPhone-hd.plist の 2 つのファイルを生成します。これら 2 つのファイルは、cocos2d プロジェクトの Resource ディレクトリに保存されています。ファイルがリソース フォルダーに保存されたら、リソース フォルダーに移動し、右クリックして ["myProject" にファイルを追加] を選択します (アイテムをコピー先ボックスにチェックを入れません)。
私の cocos2d プロジェクトが実行され、このファイルをロードしようとすると、絶対パスがメイン バンドルに認識されません。具体的には、私のコードは次のコード行を実行します。
backgroundBgNode = [CCSpriteBatchNode batchNodeWithFile:@"StoreMenuBackground_iPhone.pvr.ccz"];
cocos2d コードは、デバイスに Retina ディスプレイがあることを認識し、ファイル名を変更して "StoreMenuBackground_iPhone-hd.pvr.ccz" の relPath を作成します。次に、次の実行を試みます。
NSString *imageDirectory = [relPath stringByDeletingLastPathComponent];
fullpath = [[NSBundle mainBundle] pathForResource:file
ofType:nil
inDirectory:imageDirectory];
これにより、フル パスが nil になります。以前、上記の手順で別の xxx_iPhone5-hd.pvr.ccz ファイルを作成しましたが、上記のコードはフルパスを正常に返します。スペルを注意深くチェックして再チェックしましたが、問題はありません。プロジェクトの「ビルドフェーズ」の「バンドルリソースのコピー」の下にあるファイルを削除して再度追加しようとしました。mainBundle にこのファイルを強制的に検索させるためにできることはありますか?