Core Animation позволяет вам многое делать с минимальным количеством кода.Это делает управление 2-D слоями и их анимацией относительно простым.Поскольку анимации обрабатываются для вас, даже если они содержат сложные пути или временные кривые, вам не нужно писать код для обновления отображения каждого кадра или для расчета анимации анимации.Core Animation также прекрасно интегрируется с возможностями двумерного рисования, имеющимися в Quartz, с собственными элементами интерфейса Cocoa Touch и обработкой касания, а также с вашим кодом Objective-C в других местах вашего приложения.
Если вы используете платформукак и предполагалось, вы можете добиться очень хороших результатов.В моих тестах на моем старом iPhone первого поколения я смог одновременно анимировать 50 полупрозрачных слоев на экране со скоростью около 60 кадров в секунду.Однако это происходит с заранее заданными линейными путями для каждого слоя заранее и без прерывания анимации.
OpenGL ES для случаев, когда вы просто не думаете, что сможете добиться необходимой производительностине разговаривая напрямую с базовым оборудованием или когда вам необходимо выполнить настоящую трехмерную работу (Core Animation может выполнять ограниченные трехмерные эффекты, но только с прямоугольными плоскостями).Компромисс для лучшей производительности и большей гибкости заключается в необходимости писать намного больше кода, который намного сложнее читать.Кроме того, иногда отладка OpenGL ES может оказаться кошмаром.
Еще одно потенциальное преимущество OpenGL ES заключается в том, что он довольно независим от платформы, поэтому вы можете построить рендер так, чтобы онможет быть легко перенесен с iPhone на Android, на рабочий стол и т. д.
В целом, я рекомендовал сначала обратиться к Core Animation, чтобы посмотреть, сможет ли он делать то, что вы хотите, потому что вы сможетесоздать приложение намного быстрее, таким образом.Если это не подходит, и вы собираетесь делать 2-D игру, возможно, cocos2d будет хорошим путем.Я сам не использовал фреймворк, но слышал, что он упрощает процесс работы над двумерной OpenGL ES.Только если ни один из этих подходов не подходит, вы должны перейти к OpenGL ES.
Если вам интересно, я расскажу о Core Animation и OpenGL ES в видео для моего курса на iTunes U , где вы можете просмотреть и посмотреть, что нужно для работы в любой среде.