iPhoneФорумПрограммирование

Новая парадигма или как на этом работать

#0
14:47, 17 июня 2011

Открыв XCode попытался написать простое приложение типа  HelloGame. Но некоторое время пришлось знакомиться с предложенными HelloWorld'ами и всякими MoveMe, после чего был "весьма обескуражен": нет единого цикла обработки событий, блока отрисовки, общего места управления(перемещения) объектами между кадрами, поиска столкновений и т.д. Т.е. все то к чему я привык в программировании ранее и с чем работал в windows на с++ и др.  В место этого слои, views и Анимация... ну и инпут, но он не напугал. Ну тут конечно, понятно MVC,  все дела, но как на строиться на эту волну? Я посмотрел примеры, но они в большинстве своем показывают работу с элементами интерфейса в IB, когда планирую писать игры, которые ну не ложатся на кнопочки и textinput'ы...
И еще я не нашел исходников таких игр, может кто подскажет?
Вопрос: где я неправильно понял и как правильно писать игры под iOS ? (движки и с++ не предлагать, мне пока базу надо освоить)

и ещё пару вопросов:
CoreGraphics, Quartz Core, Quartz2D, Core Animation, OpenGL ES... я честно пытался вычитать в документации кто чем занимается, где используется и что делает, но нет.
Где между ними граница, чем отличается их использование и на чем писать игру для iPhone ?  В примерах они все вперемешку и всегда разные используются. Особенно неясно с первыми 3-мя.

Чем рисовать и перемещать спрайты, я так понял UIView и Animation ?  они не слишком жирные для этого?

И дайте плз ссылку на сырцы с которых можно начать.
Спасибо тем кто поможет =)

#1
14:48, 17 июня 2011

Обновляй все что нужно перед drawFrame. По сути это тот же update + render

#2
14:59, 17 июня 2011

kZUraX
> как правильно писать игры под iOS

посмотри http://www.cocos2d-iphone.org/

#3
15:12, 17 июня 2011

Sergio
ты имеешь ввиду внутри drawFrame? или есть место где он явно вызывается? (кстати где он? может drawRect?)

xDimka
да, я про него знаю, но это будет второй этап моего роста как iOS-программиста.

#4
16:01, 17 июня 2011

Это ничего. Скоро туда ещё и визуальный редактор кода прикрутят. Ортодоксы совсем умом тронутся.

#5
16:53, 17 июня 2011

kZUraX
вот держи: http://lookapp.ru/sdk/

#6
17:18, 17 июня 2011

Про кокоа есть такое уберчтиво оно большое, но разжеваны почти все концепции.

Цикл обновления есть, просто он икапсулирован от глаз подальше. См. 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.

#7
19:42, 17 июня 2011

kZUraX
> Т.е. все то к чему я привык в программировании ранее и с чем работал в windows
> на с++ и др.
Все это и под iPhone можно юзать.

> Вопрос: где я неправильно понял и как правильно писать игры под iOS ?
Все то, что ты написал сильно связано с Cocoa Touch и используется исключительно для написания софта с нативными контролами эпл. Игры писать все так же, как ты привык)

> CoreGraphics, Quartz Core, Quartz2D, Core Animation
Это все какая-то ересь кокоа тачевская, больше ничего не скажу, так как я с такими вещами дел не имею.

> и на чем писать игру для iPhone ?
OpenGL ES конечно же!

> Чем рисовать и перемещать спрайты, я так понял UIView и Animation ?
Рисовать лучше всего треугольниками ;) Ну еще можно поинт спрайты юзать)

#8
0:41, 18 июня 2011

спасибо всем за ответы. многое прояснил, узнал мнения. Вобщем решил взяться сразу за Cocos2D, а базу потом восполню. А потом и 3D =D .

iPhoneФорумПрограммирование

Тема в архиве.