Хорошо, я постараюсь сделать довольно длинный ответ коротким: это зависит.
Теперь несколько длинных мыслей и объяснений - это долго. Если вы не прочтете его до конца, обязательно прочитайте последние несколько предложений.
Прежде всего мне необходимо уточнить, что перечисленные вами "технологии" или API в основном касаютсяисключительно с графикой (кроме UIKit, который также обрабатывает ввод), и это нормально, если вы понимаете, что графика - это только часть (и, как я понимаю, я мог бы добавить «незначительную») всей игры.
Помимо графики, в реальной игре будет гораздо больше возможностей.Чтобы не отвлекаться от вопроса, позвольте мне добавить несколько модных слов: игровая логика, искусственный интеллект, управление ресурсами, физика, взаимодействие, создание сетей (возможно), звук и т. Д. Моя рекомендация - получить хорошую книгу.о теме и окунемся в [1,2].
Теперь, когда я снял это, вернемся к вашему вопросу:
По сути, OpenGL и QuarzCore являются основными технологиями, чтобы «привлечь внимание»экран".Все остальные технологии построены на этом.Таким образом, теоретически, если вы хотите пойти по этому пути, вы можете реализовать все, что связано с выводом графики, только с помощью OpenGL или QuarzCore (тогда как вам придется учитывать тот факт, что QuarzCore является только 2D-рисованием, тогда как OpenGL также поддерживает 3D, а 2Dдействительно просто особый случай 3D).Я на самом деле верю, что Quarz также построен поверх OpenGL, но я не уверен в этом.
UIKit построен поверх них, и его использование делает в основном две вещи: a) избегать повторного изобретения колесаи б) сделать создание пользовательских интерфейсов проще, быстрее и надежнее.Конечно, вы можете нарисовать каждую кнопку самостоятельно, указав координаты квадрата и отправив их в OpenGL для обработки.Тогда вам придется проверять каждый пользовательский ввод, если он нажимает на вашу кнопку, и вызывать связанный с ним обработчик.Тем не менее, простое создание экземпляра UIButton (возможно, даже в IB) и указание обработчика по нажатию действительно удаляет довольно много работы.
Итог: UIKit идеально подходит для создания пользовательских интерфейсов.Плюс его можно использовать вместе с OpenGL и QuarzCore.Я использую его для пользовательского интерфейса на iOS даже в играх.
Относительно Cocos2D: Это "игровой движок", построенный на основе OpenGL.Как таковой, он включает в себя довольно много вещей, с которыми вам придется справиться при развертывании собственного движка на основе OpenGL, например, управление сценами, спрайтами, текстурированием, сетками, ресурсами и т. Д. Я считаю, что он также имеет связи с физикой и библиотеками обнаружения столкновений.,Однако, чтобы понять, что там происходит, необходимо изучить, как работает компьютерная графика и игры [1,2,3].
Итог: вы бы использовали Cocos2D для своей (2D) игровой графикии UIKit для создания пользовательского интерфейса.
CoreAnimation - для анимации CoreGraphics.Он обеспечивает простой интерфейс, например, для плавного скольжения или вращения материала, инкапсуляции всех необходимых вычислений (интерполяции, перерисовки и т. Д.).Не будет работать с OpenGL - но я думаю, что Cocos2D также будет иметь обертку для этого.
Итог: используйте для необычной анимации интерфейса пользователя.
Сказав все этои просто снимая верх, я не хотел пугать тебя с самого начала.
Для вашей специальной игры (и каждая игра особенная) вам вполне может подойти только UIKit и CoreAnimiation для графики, и она вполне может стать игрой в блокбастер.Они позволяют много рисовать с помощью простого в использовании интерфейса, плюс они не требуют слишком глубоких базовых знаний и достаточно эффективны для небольших проектов.
Если у вас есть отличная игровая идея, используйте простейшиеВозможное графическое решение, которое удовлетворит вас и ваших игроков и воплотит его в жизнь.Как только вы начали, вы можете улучшить его, если это необходимо.
[1] http://www.mcshaffry.com/GameCode/
[2] http://www.gameenginebook.com/
[3] http://www.opengl.org/documentation/red_book/