2012-04-19 3 views
2

Я уже давно использую Cocoa Touch, и мне очень нравится. Для моей следующей игры я хочу, чтобы пользователь мог отслеживать маршрут с помощью пальца и иметь изображение, следуя этому пути. Также он будет включать обнаружение столкновения, например, стену. Я видел обнаружение столкновения, выполненное в Core Animation, и я знаю CGPath() и подобные функции, которые, вероятно, помогут мне отслеживать путь к следующему образцу. Поэтому мой вопрос заключается в том, почему так много людей используют Cocos2d, когда более половины всей структуры имеет дублирующий код для Cocoa Touch. Есть ли проблема с производительностью, которую я здесь отсутствует? Могу ли я сделать трассировку пальцев, такую ​​как Flight Control, которая включает обнаружение столкновения для стен только с использованием Cocoa Touch. Я действительно хочу выложить уровни в Interface Builder. Самое низкое требование сборки, в котором я нуждаюсь, это игра, позволяющая работать на iPhone3g и выше, а это значит, что я также могу использовать Storyboards. Кто-нибудь видит, как я вхожу в мир боли, пытаясь уклониться от Cocos2d. Должен ли я просто сломать и использовать эту структуру для этого типа проекта?Основная анимация VS. Производительность Cocos2d для простых игр

ответ

0

Что касается содержимого экрана, Cocos2D - это просто обертка вокруг OpenGL, и многие из задач, которые вы хотели бы сделать в OpenGL, были решены для вас уже. OpenGL быстрее, чем UIKit, и может создавать больше графических эффектов, которые вы могли бы использовать в игре (например, эффекты частиц, хотя теперь вы можете сделать это в iOS5 в UIKit).

Есть простые игры, которые были сделаны с помощью UIKit, хотя, если вы просто перетаскиваете изображение пальцем, UIKit должен быть достаточно быстрым для этого.

2

Ваш вопрос довольно «философский», и я думаю, что многие разработчики в какой-то момент задумывались над такими же сомнениями.

Для меня, я использовал cocos2d в нескольких приложений из-за его «вне коробки» поддержку концепций, характерных для игр (в конце концов, это игровой движок): спрайты и спрайтов листы; собственный формат (текстуры PVRTC) графического чипа iPhone; физический движок и обнаружение столкновения. Мне также нравится думать, что cocos2d отлично справляется с трудностями Open GL, тем самым экономя меня много времени (другими словами, я бы запрограммировал игру в Core Automation только в том случае, если не использовал Open GL).

С другой стороны, автоматизация ядра - это, на мой взгляд, более широкая технология, которая включает в себя поддержку как для кварца, так и для Open GL, но каким-то образом находится на промежуточном уровне между базовой графической системой (будь то Open GL или Кварц) и вашу игру. Используя Core Animation, вам придется (переписать) много кода, который вы уже нашли в coco2d бесплатно (например, три очка, которые я выделил выше). Посмотрите также на this post about the topic.

Оба пути могут быть приняты, в одном случае вам необходимо освоить новую настраиваемую структуру (cocos2d); в другом случае вам нужно будет написать некоторый «общий» код для обработки основных вещей (т. е. создания собственного мини-игрового движка поверх Core Automation).

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