首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在cocos2d中保持fps速率不变

如何在cocos2d中保持fps速率不变
EN

Stack Overflow用户
提问于 2010-11-28 12:19:20
回答 3查看 1K关注 0票数 0

我有三个问题。

  1. 如何在cocos2d.When中保持fps速率不变(几乎),在每秒(5-8)的小间隔内创建和删除大量的fps,是否可以使帧速率保持最恒定?
  2. [self removeChild:sprite cleanup:YES]就足够了,还是我也应该使用?

CCTexture2D *织构=精灵纹理;[CCTextureCache sharedTextureCache removeTexture:纹理];

  • 下面的代码部分负责让框架drop.How以更好的方式完成相同的任务?

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次。所以帧速率会下降。有人能帮我吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-30 05:29:43

如果要在短期内重用纹理,就不应该删除纹理。它只会在性能有很大缺陷的情况下对内存有好处。

为了保持恒定的帧速率,您可以尝试重用精灵,而不是创建和删除它们。与调用removeChild不同,您可以设置visible = NO,并将其添加到一个未使用的精灵数组中。然后,当您需要一个新的这些精灵时,您将检查这个未使用的数组中是否有一个,并且只在它为空的情况下创建一个新的数组。这样,你就可以将精灵的数量降到最低。

票数 0
EN

Stack Overflow用户

发布于 2011-09-26 02:39:57

改变这一点:

代码语言:javascript
运行
复制
id call = [CCCallFunc actionWithTarget:self selector:@selector(RemoveSmashedSprite:)];

这方面:

代码语言:javascript
运行
复制
id call = [CCCallFuncN actionWithTarget:self selector:@selector(RemoveSmashedSprite:)];
票数 0
EN

Stack Overflow用户

发布于 2014-12-23 18:23:09

您可以使用remove操作作为您的最后一个操作,而不是CCCallFunc。

id action = [CCActionRemove action];

此操作将从其父节点中移除运行此操作的节点。

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

https://stackoverflow.com/questions/4296698

复制
相关文章

相似问题

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