首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Quartz的iOS逐帧动画

使用Quartz的iOS逐帧动画
EN

Stack Overflow用户
提问于 2011-07-30 13:40:57
回答 2查看 682关注 0票数 0

我正在开发一个iPhone游戏,它只涉及一个物体的二维平移动画。此对象是从UIView派生的子类,并使用Quartz-2D绘制。转换当前由NSTimer实施,它勾选每一帧并告诉UIView更改其位置。

然而,在决定UIView在下一帧中应该移动到哪里之后,有一些相当复杂的数学问题。在iOS模拟器上测试游戏效果很好,但在iPhone上测试时,它肯定会跳过帧。

我的问题是:我的逐帧转换视图帧的方法是不是一个糟糕的方法?我知道OpenGL更多地用于游戏,但为如此简单的动画设置OpenGL似乎是一种遗憾。尽管如此,值得这么麻烦吗?

EN

回答 2

Stack Overflow用户

发布于 2011-07-30 18:17:10

在不知道计算翻译的复杂数学方法的情况下,很难说。只有当图形处理器真的是瓶颈时,使用OpenGL才有意义。我怀疑情况并非如此,但您必须测试哪些部分导致跳过的帧。

通常,UIViewCALayer都是在OpenGL之上实现的,因此对UIView的平移进行动画处理已经使用了图形处理器。

另外,对于游戏循环,使用CADisplayLink而不是NSTimer可能会更好。

票数 1
EN

Stack Overflow用户

发布于 2011-07-30 18:07:49

iPhone模拟器的问题在于,它可以访问与您的mac相同的资源。我建议做的是打开iPhone SDK附带的instruments.app,并使用CoreAnimation模板来查看您的资源是如何管理的。您还可以查看分配情况,看看它是否占用了ram。CPU也能帮上忙。

tl;dr iPhone sim使用你的macs ram和gfx卡。尝试查看Instruments中的序列,看看是否有一些滞后。

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

https://stackoverflow.com/questions/6881340

复制
相关文章

相似问题

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