2012-04-20 2 views
0

Если анимация изображения, такого как металлический шар, и ширина около 20 пикселей, а скорость составляет около 200 пикселей в секунду, тогда, если частота обновления составляет 60 кадров в секунду, шар будет перемещаться примерно на 3 пикселя в секунду вторых, что составляет 1/6 от ширины шара (16%). (Если это Angry Birds, синяя птица примерно того же размера 20 пикселей, и она движется намного более гладкой, а не как 3 пикселя каждый раз). Похоже, что этот мяч перемещается с некоторым зубчатым движением. Как это можно сделать плавно? Будет ли это требовать скорость обновления более 60 кадров в секунду, и если да, то как это можно сделать? (CADisplayLink используется как таймер, так что теперь 60 кадров в секунду. NSTimer может сделать его обновить быстрее, за исключением NSTimer может быть отложено и не покажет время, прошедшее с последнего обновления.)На iOS, есть ли способ обновить более 60 кадров в секунду?

+0

Я слышал о ставках FPS до 70 (устройства A5 и новейшие Apple TV). – CodaFi

+1

На iPhone Я думаю, что максимальная ставка, которую вы можете получить, равна 60 – Jason

+1

, и поэтому 'CADisplayLink' является наиболее предпочтительным методом таймера, даже в Cocos2D или OpenGL ES вообще? –

ответ

1

Пытаюсь делать что-то вроде тебя и стирать то же самое неприятное «мерцание». Вот мой код http://paste.ideaslabs.com/show/1FZoo6AQtu

Я читаю некоторые документы OpenGL, а свойство preferredFramesPerSecond GLKViewController выглядит многообещающим. Может быть, кто-то с большим опытом работы с OGL/GLK может предоставить нам руку.

Смежные вопросы