【问题标题】:how to remove children in cocos2d, is there more that one way?如何在 cocos2d 中删除孩子,还有更多的方法吗?
【发布时间】:2013-08-18 21:42:25
【问题描述】:

你好,我正在制作一个 Cocos2d 侧滚动条。我有一个使用[self addChild:sprite]; 方法添加的CCSprite。过了一会儿,我希望删除 CCSprite。我尝试了[self removeChild:sprite cleanup:YES]; 方法,它给了我一个线程错误访问错误。这是在 Cocos2d 中删除孩子的唯一方法吗?有替代方法吗??我是 Cocos2d 和 Objective c 的初学者,所以任何帮助都很有价值。

【问题讨论】:

    标签: iphone objective-c cocos2d-iphone ccsprite side-scroller


    【解决方案1】:

    据我所知,如果您需要删除任何CCNoderemoveChild:cleanup: 是您的最佳选择。在尝试删除之前,您是否检查过 sprite 没有被释放?

    【讨论】:

    • 所以在我的应用程序中我希望角色移动到老虎所以我有这个代码 CCMoveTo* moveToTheTiger = [CCMoveTo actionWithDuration:1.0 position:ccp(tiger.position.x + 90, tiger.position .y + 90)]; [角色 runAction:moveToTheTiger];但它使另一个字符,所以我在屏幕上有两个字符。为什么会发生这种情况。我首先在 init 方法中创建角色,然后调用另一个方法,我告诉角色移动。
    • 嗯不确定我是否理解问题所在。您是否在屏幕上看到了两个 character 精灵,而您只期望一个?如果是这种情况,您很可能会两次调用[self addChild:character 之类的东西。
    【解决方案2】:
    [sprite removeFromParentAndCleanUp:YES]
    

    如果您的访问权限不正确,则意味着对象为零。 在尝试删除它之前检查您的精灵是否存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多