Кварц 2D против OpenGL ES Learning Curve - PullRequest
7 голосов
/ 15 ноября 2009

Я занимаюсь разработкой приложений для iPhone в течение нескольких месяцев. Я хотел бы узнать ваше мнение о кривой обучения Quartz vs OpenGL ES 1.x или 2.0. Вы можете сказать свою точку зрения. Мои вопросы

* Я - разработчик игр подражателей, так что будет хорошей идеей сначала развиваться в кварце, а затем двигаться на OpenGL ES или это не имеет значения * Можете ли вы рассказать о своем опыте, когда у вас был похожий вопрос

Спасибо:)

Ответы [ 4 ]

6 голосов
/ 01 декабря 2009

Quartz 2D не применим для разработки игр ИМХО. Это программный рендеринг API. Это не даст вам скорость рендеринга в реальном времени. Это хорошо для рисования диаграмм или векторного текста с тенями, или для смешивания нескольких изображений вместе. Просто не для игр. Если вы не хотите создать игру, в которой несколько изображений движутся на монохромном фоне, и даже в этом случае я сомневаюсь, что это будет действительно гладко на старых устройствах. Я видел некоторые игры, явно закодированные с Quartz. Жалкое зрелище.

Рано или поздно вы в конечном итоге будете использовать Open GL ES или игровой фреймворк, построенный на его основе. Я рекомендую вам проверить cocos2D, движок SIO2 или примеры из SDK. При тщательном программировании можно сделать игру Open GL ES с параллаксной прокруткой и относительно небольшим количеством объектов, работающих на скорости 60 FPS даже на устройствах 2-го поколения. Tiny Wings - пример такой игры. И поддержание стабильного 30 FPS совсем не проблема.

4 голосов
/ 15 ноября 2009

Я пропустил Quartz и перешел прямо к OpenGL ES. Я начал с 2D спрайтовой игры. Думаю, это было довольно легко.

Ключ имеет хороший пример, на который можно посмотреть. Я использовал клон Lunar Lander (Crash Lander), но я не думаю, что это легко найти больше. Возможно, кто-то, кто сделал это недавно, знает о лучшем, более новом примере, который использует текущие лучшие практики.

0 голосов
/ 25 декабря 2011

Я искал фундаментальные различия, чтобы я мог выбирать между OpenGL (ES) или Quartz или гибридом. Хорошей новостью является то, что гибрид является вариантом. Очевидно, что Quartz легче освоить при программировании O-O, и ответ Apple, по-видимому, заключается в том, что OpenGL «... идеально подходит для иммерсивных типов приложений ...»

http://developer.apple.com/library/ios/#DOCUMENTATION/General/Conceptual/Devpedia-CocoaApp/DrawingModel.html

Я не хочу ограничивать категорию играми, поскольку считаю, что любой игровой UX может быть применен к бизнес-приложениям, приложениям для повышения производительности, просмотру развлекательных программ и т. Д. Я полностью ожидаю, что эта технология / w и s / w) продвигаться, чтобы сделать любой выбор.

0 голосов
/ 15 ноября 2009

Я в той же лодке, как вы описали, хотя у меня нет опыта программирования. (Хотя я и не знаю, каков ваш опыт) В настоящее время я нахожусь в процессе обучения кодированию, поскольку я изучаю различные доступные API. Я - целеустремленный парень, возвращающийся назад к основанному на c Quartz API, и это немного сложная задача. К счастью, программирование в Objective-C 2.0 от С. Кочана имеет большую главу о базовых возможностях C, чтобы держать вас на плаву.

Я сделал пару ударов @ OpenGLES и должен сказать, что с концептуальной точки зрения я к этому не готов. API Quartz2d немного легче понять концептуально, потому что его очень легко настроить и запустить с помощью нескольких команд. Прямо сейчас я нахожусь в точке, где я могу определять формы и указывать изображения без особых проблем.

OpenGLES будет чем-то новым в моем будущем, но для конфигурирования вида чертежа, настройки буферов и т. Д. Требуется огромное количество кода. Если вы знакомы со всем, что делает код, то это немного проще , Тем не менее, с точки зрения обучения, Quartz - это более простой способ быстро начать работу.

Ресурсы, которые я использую: вышеупомянутая книга и анемичное количество блогов, содержащих учебники, которые ограничены @ best. На этом этапе назначьте встречу с Apple Docs и почувствуйте себя уютно, потому что это лучший (бесплатный) материал, который есть (и исчерпывающий). С учетом сказанного, я бы хотел, чтобы кто-то доказал, что я не прав на этом сайте, разместив сообщение отличный ресурс для обучения, но это все. Удачи.

...