0

を使用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'

PS: Dice は、CCSprite私が作成したクラスを継承したものです。

使えないならCCSpriteBatchNode、また使ってみようかなCCSprite

4

1 に答える 1

1

エラーメッセージを読みましたか?

'If CCSprite is being rendered by CCSpriteBatchNode, 
 CCSprite#draw SHOULD NOT be called'

メソッドをオーバーライドしないか-(void) draw、スプライト バッチ ノードを使用しないでください。

于 2012-08-12T21:32:09.090 に答える