为动画创建另一个图层类



有一个主类,我想添加一些其他层,当该层做一些动画时,当我同时需要该层的几个副本时,问题就开始了。例如,我有一个做爆炸动画的层,在主电流层之上。如果每次使用它时,我都会复制它(实例分配),我将不得不在某个时候释放该副本,但我不能这样做:

explotionLayer *instance=[[explotion alloc]init];
[instance someFunction ];
[instance release];

因为someFunction需要时间,当它结束时,正在执行该instance中的其他一些函数 - 因此该实例无法在之前释放。

我如何同时创建多个实例(在游戏期间),并以某种方式管理如何在正确的时间发布它们 - 仅在他们完成动画和所有其他任务时.

我知道我可以从该实例回调到主层中的函数以释放它 - 但这不是一个很好的健壮方式.

使用

[instance autorelease];

不,搞砸了。 你真的应该使用 ARC。您甚至不必再考虑此类问题,并且泄漏次数也会减少。

此外,如果实例被添加到节点层次结构中,cocos2d 无论如何都会保留它。

请使用自动引用计数 (ARC)。您需要做的就是在实例变量上定义正确的属性并迁移到 ARC。框架将为您处理内存。

最新更新