Открыв XCode попытался написать простое приложение типа HelloGame. Но некоторое время пришлось знакомиться с предложенными HelloWorld'ами и всякими MoveMe, после чего был "весьма обескуражен": нет единого цикла обработки событий, блока отрисовки, общего места управления(перемещения) объектами между кадрами, поиска столкновений и т.д. Т.е. все то к чему я привык в программировании ранее и с чем работал в windows на с++ и др. В место этого слои, views и Анимация... ну и инпут, но он не напугал. Ну тут конечно, понятно MVC, все дела, но как на строиться на эту волну? Я посмотрел примеры, но они в большинстве своем показывают работу с элементами интерфейса в IB, когда планирую писать игры, которые ну не ложатся на кнопочки и textinput'ы...
И еще я не нашел исходников таких игр, может кто подскажет?
Вопрос: где я неправильно понял и как правильно писать игры под iOS ? (движки и с++ не предлагать, мне пока базу надо освоить)
и ещё пару вопросов:
CoreGraphics, Quartz Core, Quartz2D, Core Animation, OpenGL ES... я честно пытался вычитать в документации кто чем занимается, где используется и что делает, но нет.
Где между ними граница, чем отличается их использование и на чем писать игру для iPhone ? В примерах они все вперемешку и всегда разные используются. Особенно неясно с первыми 3-мя.
Чем рисовать и перемещать спрайты, я так понял UIView и Animation ? они не слишком жирные для этого?
И дайте плз ссылку на сырцы с которых можно начать.
Спасибо тем кто поможет =)
Обновляй все что нужно перед drawFrame. По сути это тот же update + render
kZUraX
> как правильно писать игры под iOS
посмотри http://www.cocos2d-iphone.org/
Sergio
ты имеешь ввиду внутри drawFrame? или есть место где он явно вызывается? (кстати где он? может drawRect?)
xDimka
да, я про него знаю, но это будет второй этап моего роста как iOS-программиста.
Это ничего. Скоро туда ещё и визуальный редактор кода прикрутят. Ортодоксы совсем умом тронутся.
kZUraX
вот держи: http://lookapp.ru/sdk/
Про кокоа есть такое уберчтиво оно большое, но разжеваны почти все концепции.
Цикл обновления есть, просто он икапсулирован от глаз подальше. См. NSRunLoop.
Вообще UIKit вполне оправдывает свое название и делать на нем удобно UI, а не игрухи. Притом для UI в игрухах он вполне годится .
Core Graphics (also known as Quartz) handles native 2D vector- and image-based rendering.
Core Animation (part of the Quartz Core framework) provides advanced support for animating views and other content.
OpenGL ES provides support for 2D and 3D rendering using hardware-accelerated interfaces.
Core Text provides a sophisticated text layout and rendering engine.
Image I/O provides interfaces for reading and writing most image formats.
От себя добавлю что CoreAnimation делался прежде всего для того, чтобы встраивать анимацию в GUI не мешая остальной логике программы,
в играх же логика может быть завязана на анимацию и тогда не совсем удобно.
IUView + Animation жирно. Удобоваримо CoreGraphics + CoreAnimation, но см. выше.
Лучше всего из перечисленного OpenGL ES + что-то свое. А вообще конечно Cocos2d.
kZUraX
> Т.е. все то к чему я привык в программировании ранее и с чем работал в windows
> на с++ и др.
Все это и под iPhone можно юзать.
> Вопрос: где я неправильно понял и как правильно писать игры под iOS ?
Все то, что ты написал сильно связано с Cocoa Touch и используется исключительно для написания софта с нативными контролами эпл. Игры писать все так же, как ты привык)
> CoreGraphics, Quartz Core, Quartz2D, Core Animation
Это все какая-то ересь кокоа тачевская, больше ничего не скажу, так как я с такими вещами дел не имею.
> и на чем писать игру для iPhone ?
OpenGL ES конечно же!
> Чем рисовать и перемещать спрайты, я так понял UIView и Animation ?
Рисовать лучше всего треугольниками ;) Ну еще можно поинт спрайты юзать)
спасибо всем за ответы. многое прояснил, узнал мнения. Вобщем решил взяться сразу за Cocos2D, а базу потом восполню. А потом и 3D =D .
Тема в архиве.