0

cocos2d プロジェクトで別のスプライト シートを変更しようとしています。そして、私は spriteSheet.plist を使用していましたが、正常に動作していました。何らかの理由で、さらにスプライトを追加して、ファイルを spriteSheet2.plist に変更する必要があります。また、spriteSheet2.plist、spriteSheet2.pvr.ccz などのファイルが既に含まれています。

しかし、それはエラー メッセージ Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'CCSprite is not using the same texture id' を返すことになります。

[[CCTextureCache sharedTextureCache] removeUnusedTextures];
[CCSpriteFrameCache purgeSharedSpriteFrameCache];   
CCSpriteFrameCache *frameCache = [CCSpriteFrameCache sharedSpriteFrameCache];   
//        [frameCache addSpriteFramesWithFile:@"spriteSheet.plist" ];    
[frameCache addSpriteFramesWithFile:@"spriteSheet2.plist" ];

Xcodeから元の「spritesheet.plist」を削除すると、その他の問題が発生します。スピリッツはまだ画面上で作業しています。

エラーメッセージを取り除くために何をすべきか誰か教えてくれますか?

4

1 に答える 1

2

最初のテクスチャで作成されたバッチ ノードがどこかにあり、そこに 2 番目のテクスチャからスプライトを追加しようとしています。バッチ ノードに含まれるすべてのスプライトは、バッチ ノードが作成されたテクスチャと同じテクスチャからのものである必要があります。

于 2013-03-17T12:01:21.577 に答える