Проблема с добавлением спрайта с использованием массива CCSprite в cocos2d - PullRequest
1 голос
/ 08 октября 2010

У меня проблема со следующим кодом.

<br>
        mySpriteArray=[[NSMutableArray alloc] init];</p>

<code>    star=[CCSprite spriteWithFile:@"22.png"];

    for(int i=0;i<10; i++) 
    {

        [mySpriteArray insertObject:star  atIndex:i];


    }


   // NSLog(@"x=%i",[mySpriteArray count]);



    for (int i=0; i<10; i++) // Opponents is NSMutableArray
    {
        CCSprite *tempSprite = (CCSprite *) [mySpriteArray objectAtIndex:i];


        tempSprite.position=ccp(100,100);


        [self addChild:tempSprite];


    }
</code>

} где star - это объект CCSprite, а mySpriteArray - изменяемый массив. Проблема заключается в том, что при запуске программы происходит сбой и появляется сообщение

* Ошибка подтверждения в - [GameScene addChild: z: tag:], / Users / salimsazzad / Desktop / охотник за балонами / libs / cocos2d / CCNode.m: 305 2010-10-08 19: 05: 35.854 balon hunter [3967: 207] * Завершение работы приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «дочерний элемент уже добавлен. Он не может быть добавлен снова ».

Я не могу понять, в чем дело, я добавляю 10 объектов, а не 1 объект в 10 раз, потому что CCSprite * tempSprite = (CCSprite *) [mySpriteArray objectAtIndex: i]; каждый раз создаю новый объект. так в чем проблема ???

1 Ответ

1 голос
/ 08 октября 2010

Вы один раз создали свой звездный объект и добавили его в массив:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...