Spritekit逐帧动画/性能问题
Posted
技术标签:
【中文标题】Spritekit逐帧动画/性能问题【英文标题】:Spritekit frame by frame animation / performance issue 【发布时间】:2018-03-07 08:17:14 【问题描述】:我是开发新手,但在搜索后无法找到具体答案,我想打开一个线程,如果我的问题听起来是初学者,这很正常,我完全是新手。
目前我正在做一个简单的项目;
我在每个视图控制器中都使用了一个 spritekit 场景,其中包括一个带有 AnimateWithtextures Action 的颜色精灵。它包含 12 张不同的图像,因此是逐帧动画。
虽然一段时间后我遇到了奇怪的性能问题(当前应用程序仅包含 3 个 spritekit 场景/4 个视图控制器)并且 iphone 很快变热。所以我假设有一个问题,我有一些具体的问题可以问;
1 - 我用single view app模板开始项目,我应该选择game模板吗? (不过我在代码和链接的 spritekit 库中添加了import SpriteKit
,所以这应该不是问题)
2 - 为 AnimateWithtextures Action 使用颜色精灵可能是错误的选择吗?
3 - 我使用了仪器,没有泄漏,不过 cpu 使用率大多超过 %150。
4 - 图像为 png8,不透明,每个动画的帧速率为每秒 12。还有什么我可以做的优化吗?
5 - 我为每个视图控制器/场景使用了单独的资产目录/文件夹。这会影响什么吗?
欢迎提出任何其他问题和建议。
【问题讨论】:
3个spritekit场景同时进行?很不寻常!我怀疑它是为这种用途而构建的。一般来说:更密集的动画 ==> 更密集的 CPU 使用率。你可能会重新考虑你的前进方式。 【参考方案1】:除了我的评论:
没问题,模板只是预先构建的配置;然后按照你想要的方式自定义任何模板都是一样的。
Interface Builder Color Sprite
只是 SKSpriteNode
的实例,正是纹理动画所需要的
我的评论表明,同时使用密集动画的 3 个场景可能不是最好的方法(由于您没有更准确地描述您的意图,我无法回答更多)
不可以,除非确保不会过于频繁地调整纹理大小。在某些情况下,尺寸拟合可能会减少 CPU 使用率
没有效果。这只是项目结构的问题。
【讨论】:
3 - 不是同一时间,每个视图控制器都有一个场景,所以我有 2 个带有静态图像的故事板(包括 launchscreen.storyboard)和 3 个带有 3 个 spritekit 场景的故事板(每 1 个) 如果不一样则考虑场景切换 我假设每个加载的场景都会在背景中保持动画,即使它不可见,对吧?以上是关于Spritekit逐帧动画/性能问题的主要内容,如果未能解决你的问题,请参考以下文章
iOS CoreAnimation 逐帧动画 CADisplayLink
android开发,ImageView加了逐帧动画。但放入WindowManager中,动画为啥实现不了