2013-08-18 56 views
0

你好,我正在制作一个Cocos2d侧卷轴。我有一个CCSprite,我使用[self addChild:sprite];方法添加。过了一段时间,我想要删除CCSprite。我尝试了[self removeChild:sprite cleanup:YES];方法,它给了我一个线程访问错误的错误。这是删除Cocos2d中的一个孩子的唯一方法吗?有没有一种替代方法?我是Cocos2d和Objective C的初学者,所以任何帮助都是有价值的。如何删除cocos2d中的孩子,有更多的方法吗?

回答

0

据我所知,removeChild:cleanup:是要走的路,如果你需要删除任何CCNode。您是否在尝试删除之前检查了sprite未发布?

+0

所以在我的应用程序我想要角色移动到老虎,所以我有这个代码CCMoveTo * moveToTheTiger = [CCMoveTo actionWithDuration:1.0位置:ccp(tiger.position.x + 90,tiger.position.y + 90) ]。 [character runAction:moveToTheTiger];但它使另一个字符,所以我有两个字符在屏幕上。为什么发生这种情况。我首先在init方法中创建角色,然后调用另一个方法,这是我告诉角色移动的方法。 – PoKoBros

+0

不知道我是否理解这个问题。你会在屏幕上看到两个“角色”精灵吗?如果是这样的话,你可能会调用类似'[add addChild:character''的东西两次。 – ssantos

0
[sprite removeFromParentAndCleanUp:YES] 

如果你有一个访问不良,它意味着对象是n。 在尝试删除它之前,检查您的精灵是否存在。