我有三个问题。
[self removeChild:sprite cleanup:YES]
就足够了,还是我也应该使用?CCTexture2D *织构=精灵纹理;[CCTextureCache sharedTextureCache removeTexture:纹理];
id fadeout = CCFadeOut actionWithDuration:1.4f;id call = CCCallFunc actionWithTarget:self选择器:@selector(RemoveSmashedSprite:);CCSequence* sequence= CCSequence操作:fadeout、调用、零;smash runAction:sequence;
..。and...
-(void)RemoveSmashedSprite:(id)sender { CCSprite *sp = (CCSprite *)发件人;自清除子:sp清理:是;}
这叫做每秒5-8次。所以帧速率会下降。有人能帮我吗?
发布于 2010-11-30 05:29:43
如果要在短期内重用纹理,就不应该删除纹理。它只会在性能有很大缺陷的情况下对内存有好处。
为了保持恒定的帧速率,您可以尝试重用精灵,而不是创建和删除它们。与调用removeChild不同,您可以设置visible = NO,并将其添加到一个未使用的精灵数组中。然后,当您需要一个新的这些精灵时,您将检查这个未使用的数组中是否有一个,并且只在它为空的情况下创建一个新的数组。这样,你就可以将精灵的数量降到最低。
发布于 2011-09-26 02:39:57
改变这一点:
id call = [CCCallFunc actionWithTarget:self selector:@selector(RemoveSmashedSprite:)];
这方面:
id call = [CCCallFuncN actionWithTarget:self selector:@selector(RemoveSmashedSprite:)];
发布于 2014-12-23 18:23:09
您可以使用remove操作作为您的最后一个操作,而不是CCCallFunc。
id action = [CCActionRemove action];
此操作将从其父节点中移除运行此操作的节点。
https://stackoverflow.com/questions/4296698
复制相似问题