如果为图像设置动画,例如金属球,并且它的宽度约为20像素,速度约为每秒200像素,那么如果刷新率为每秒60帧,则球将移动约3个像素每秒,这是球宽度的1/6(16%)。 (如果是“愤怒的小鸟”,蓝鸟的大小与20像素的大小相同,并且移动得更加平滑,每次不像3个像素。)
似乎就是这样,球正以一些锯齿状的动作移动。如何才能顺利进行?这需要刷新率超过每秒60帧吗?如果是这样,它怎么办呢? (CADisplayLink
用作计时器,因此它现在为每秒60帧。NSTimer
可以使其更快刷新,但NSTimer
可能会延迟,并且不会告知时间过去最后刷新了。)
答案 0 :(得分:1)
我正在尝试做一些像你这样的事情并且得到同样令人不快的“闪烁”。这是我的代码http://paste.ideaslabs.com/show/1FZoo6AQtu
我正在阅读一些OpenGL文档,GLKViewController的属性preferredFramesPerSecond看起来很有希望。可能是具有OGL / GLK经验的人可以帮助我们。