1

このメソッドを呼び出す前に、ドキュメントディレクトリにファイルが存在することを確認しました。

CCSpriteBatchNode *batchNode = [[CCSpriteBatchNode alloc] initWithFile:filePath capacity:9];

報告されたエラーは次のとおりです。

-[CCFileUtils fullPathFromRelativePath:resolutionType:]  : cocos2d: Warning: File not found: decompressed_file.png

cocos2d: CCTexture3d: Can't create Texture.  cgImage is nil;

Cocos2d2.0の使用

4

2 に答える 2

1

cocos2d関数のファイルメソッドは、バンドルリソースからロードしていることを前提としています。ファイルを直接ロードできるとは思いませんが、UIImageにロードしてから、CGImageを使用してCCTexture2Dを作成することができます。CCTexture2Dを使用して、CCSpriteBatchNodeを作成できます。

UIImage *img = [UIImage imageWithContentsOfFile:filePath];
CCTexture2d *tex = [[CCTextureCache sharedTextureCache] addCGImage:[img CGImage] forKey:@"myTexture"];
CCSpriteBatchNode *batch = [CCSpriteBatchNode batchNodeWithTexture:tex capacity:9];

これらの手順は、通常のメソッドを使用してCCSpriteBatchNodeを作成するときに、とにかくバックグラウンドで行われていることです。バンドルの仮定を除いて。

何らかの理由でスプライトバッチノードを複数回作成している場合は、UIImageをリロードする前に、テクスチャがキャッシュにすでに存在するかどうかを確認できます。

于 2012-10-02T22:34:20.163 に答える