次のコードがあります。
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"cow_sprite.plist"];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"ray_sprite.plist"];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"chicken_sprite.plist"];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"tank_sprite.plist"];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"human_sprite.plist"];
self.raySpriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"ray_sprite.png"];
self.tankSpriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"tank_sprite.png"];
self.chickenSpriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"chicken_sprite.png"];
self.cowSpriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"cow_sprite.png"];
self.humanSpriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"human_sprite.png"];
[self addChild:self.raySpriteSheet];
[self addChild:self.tankSpriteSheet];
[self addChild:self.chickenSpriteSheet];
[self addChild:self.cowSpriteSheet];
[self addChild:self.humanSpriteSheet];
for (int i = 0; i < 13; ++i) {
Dice* d = [[Dice alloc] initRandom];
if (d.fileNum == 0 || d.fileNum == 1) {
[self.raySpriteSheet addChild:d.sprite];
}else if(d.fileNum == 2){
[self.tankSpriteSheet addChild:d.sprite];
}else if(d.fileNum == 3){
[self.chickenSpriteSheet addChild:d.sprite];
}else if(d.fileNum == 4){
[self.cowSpriteSheet addChild:d.sprite];
}else if(d.fileNum == 5){
[self.humanSpriteSheet addChild:d.sprite];
}
[rollDiceArray addObject:d];
}
アイデアは、5 つの個別のサイコロ アニメーションに 5 つの個別のスプライト シートを使用できるようにすることです。各ダイの値を事前に決定し、次にスプライト/アニメーションを割り当て、最後にそのスプライトを適切な CCSpriteBatchNode に追加します。
最初の反復では成功しますが、2 回目の反復でエラーが発生し、次のエラーが発生します。
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'CCSprite is not using the same texture id'
何かご意見は?