2

複数のスプライト シートを使用しようとしています。すべてを 1 つに収めることができず、2 つあると注文が簡単になります (スプライト シート 1 つのスプライトは後ろにあり、zOrder が低くなります)。私は現在やっています:

spriteSheet1 = [[CCSpriteSheet spriteSheetWithFile:@"spriteSheet1.png" capacity:3] retain];
[[CCSpriteFrameCache sharedSpriteFrameCache]     addSpriteFramesWithFile:@"spriteSheet1.plist"];
[self addChild:spriteSheet1];

spriteSheet2 = [[CCSpriteSheet spriteSheetWithFile:@"spriteSheet2.png" capacity:4] retain];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"spriteSheet2.plist"];
[self addChild:spriteSheet2];

CCSprite *sprite = [CCSprite spriteWithSpriteFrameName:@"sprite1.png"];

最後の行が次のエラーでクラッシュします: キャッチされていない例外 'NSInternalInconsistencyException' が原因でアプリを終了しています。理由: 'スプライトのスプライト フレームが無効です' SIGABRT

複数のスプライト シートをキャッシュすることはできませんか? そうでない場合、これを処理する別の効率的な方法はありますか?

4

1 に答える 1

0

Zwoptex を使用してスプライトシートを作成する場合は、互いにサポートしているバージョンの Zwoptex と cocos2d を使用していることを確認してください。最近、Zwoptex に大きな変更が加えられました。古いバージョンの cocos2d を使用している場合、これが原因でクラッシュする可能性があります。

一般に、すべてのリソース ファイルが Xcode に追加され、適切な名前が付けられていれば、提供したコードは問題なく動作するはずです。iOS デバイスでは大文字と小文字が区別されることに注意してください。「spriteSheet1.plist」をロードしようとしても、ファイルの名前が実際には「Spritesheet1.plist」である場合、エラー (おそらくアサーションまたはクラッシュ) が発生します。

于 2010-07-30T20:14:54.813 に答える