我使用CCSpriteBatchNode,但是我得到了一些异常错误。下面是我的代码:
//Use CCSpriteBatchNode.....!!!
CCSpriteBatchNode *singleGameSpriteBatchNode;
//if < 16 , create dice
unsigned int createDiceNumber = 4 - (maxDiceNumber%4) ;
for (int i = 0; i<createDiceNumber; i++) {
CCLOG(@"Total dice number = %d" , createDiceNumber);
int randomDiceNumber = arc4random()%17;
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"singleGameImage.plist"];
singleGameSpriteBatchNode = [CCSpriteBatchNode batchNodeWithFile:@"singleGameImage.png"];
Dice *tempCreateDice = [[Dice alloc]initWithSpriteFrameName:[self getDicePicture:randomDiceNumber]];
[singleGameSpriteBatchNode addChild:tempCreateDice];
[self addChild:singleGameSpriteBatchNode z:5];
[createDiceArray addObject:tempCreateDice];
[tempCreateDice setPosition:ccp( 40 , 220-(60*i))];
[tempCreateDice setRecentPosition:ccp( 40 , 220-(60*i))];
[tempCreateDice setDiceType:randomDiceNumber];
[tempCreateDice release];
maxDiceNumber++;
mustMoveDiceNumber++;
}
CCLOG(@"length = %d" , [createDiceArray count]);
}它成功地创建了带有图像的骰子。但是当我使用ccTouchesBegan方法时,我得到了一些错误消息:
*** Assertion failure in -[Dice draw], /Users/xxxxx/Documents/C_Program/iOs Practice(2011)/DiceGame/DiceGame/libs/cocos2d/CCSprite.m:576
2012-08-13 02:32:47.921 DiceGame[11103:c07] *** Terminating app due to uncaught
exception 'NSInternalInconsistencyException', reason: 'If CCSprite is being
rendered by CCSpriteBatchNode, CCSprite#draw SHOULD NOT be called'Dice是我创建的一个继承自CCSprite的类。
如果它不能使用CCSpriteBatchNode,也许我应该回去使用CCSprite。
发布于 2012-08-13 05:32:09
您是否阅读了错误消息?
'If CCSprite is being rendered by CCSpriteBatchNode,
CCSprite#draw SHOULD NOT be called'要么不覆盖-(void) draw方法,要么不使用sprite批处理节点。
https://stackoverflow.com/questions/11924913
复制相似问题