2013-08-18 2 views
0

Привет, я делаю Cocos2d скроллер. У меня есть CCSprite, который я добавляю с помощью метода [self addChild:sprite];. Через некоторое время я хочу удалить CCSprite. Я попробовал метод [self removeChild:sprite cleanup:YES];, и он дал мне ошибку с неправильным доступом к потоку. Это единственный способ удалить ребенка в Cocos2d? Есть ли альтернативный способ? Я новичок в Cocos2d и объектив c, поэтому любая помощь ценна.Как удалить детей в cocos2d, есть ли еще один способ?

ответ

0

Насколько я знаю, removeChild:cleanup: - это путь, если вам нужно удалить CCNode. Вы проверили, что sprite не выпущен, прежде чем пытаться его удалить?

+0

поэтому в моем приложении я хочу, чтобы персонаж переместился на тигра, поэтому у меня есть этот код. CCMoveTo * moveToTheTiger = [CCMoveTo actionWithDuration: 1.0 position: ccp (tiger.position.x + 90, tiger.position.y + 90) ]; [character runAction: moveToTheTiger]; но он делает другого персонажа, поэтому на экране есть два символа. Почему это происходит. я сначала создаю символ в методе init, а затем вызываю другой метод, в котором я говорю персонажу для перемещения. – PoKoBros

+0

Mmh не уверен, если я понимаю проблему. Вы получаете два символа 'character' на экране, где вы ожидаете только одного? Если это так, скорее всего, вы дважды вызываете нечто вроде '[self addChild: character'. – ssantos

0
[sprite removeFromParentAndCleanUp:YES] 

Если у вас есть плохой доступ, это означает, что объект - это нуль. Проверьте, существует ли ваш спрайт, прежде чем пытаться его удалить.