首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CCSprite未删除

CCSprite未删除
EN

Stack Overflow用户
提问于 2011-02-22 13:41:57
回答 1查看 1.1K关注 0票数 0

我有一个叫做Projectiles的类,它继承自CCSprite类,目前有两种类型的projectiles,rain1和rain2。我有一个方法,它每2秒创建一堆这样的精灵,给人一种脉动的雨的错觉。这些雨精灵中的每一个都被添加到数组_projectiles中,并且它受到重力的影响。

事实上,它工作得很完美,除了内存管理,在这个雨循环不断产生精灵后不久,我得到了大量的帧率下降。

理想情况下,如果雨(在重力恒定的情况下)低于屏幕高度,我希望删除雨精灵。从_projectiles数组中删除,从视图中完全删除!

我的代码没有做到这一点!求求你我需要一些帮助。

下面是一个代码片段:

代码语言:javascript
复制
for (Projectile *rain1 in _projectiles){
    if (rain1.position.y < -winSize.height) {
        rain1 = nil;
        [_projectiles removeObject: rain1];
        [self removeChild:rain1 cleanup:YES];
        [rain1 release];

    }
}

for (Projectile *rain2 in _projectiles){
    if (rain2.position.y < -winSize.height) {
        rain2 = nil;
        [_projectiles removeObject: rain2];
        [self removeChild:rain2 cleanup:YES];
        [rain2 release];
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-22 14:06:01

删除rain1 = nil,这应该可以工作。你将rain1指针改为空,这就是为什么当你调用self removechild时,它找不到要移除的rain1精灵。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5074463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档