...

понедельник, 15 июля 2013 г.

Haxe + OpenFL: Даже моя бабушка сможет сделать игру под iOS!


Привет, %USERNAME%! решил рассказать тебе, как, приложив минимальные усилия, начать разрабатывать на Haxe игры под iOS (на самом деле и не только, но я решил ограничить данную статью именно этой платформой).


Для этого нам понадобятся:



  1. бабушка Руки. Желательно прямые. Ещё желательней из плеч;

  2. Mac OS X;

  3. XCode;

  4. Идея для игры.


Приглашаю всех под кат, даже если чего-либо из списка у Вас нет в наличии.


Установка




Первым делом заходим в консоль и выполняем комманду haxe. Если вдруг по какой-то причине видим сообщение

-bash: haxe: command not found




то бежим и скачиваем Haxe 3 по ссылке http://haxe.org/download и никому больше не говорим, что у вас не стоял Haxe ;)

Следующим шагом установим OpenFL — кроссплатформенный SDK, реализующий Flash API на различных платформах:



haxelib setup
haxelib install openfl
haxelib install openfl-tools
haxelib install openfl-native


После установки нужных библиотек осталось только проинициализировать OpenFL:



haxelib run openfl setup




Failed to load library? Смотри спойлер
Если вдруг получили ошибку с примерно таким содержимым:

Uncaught exception - load.c(237) : Failed to load library : nme.ndll (dlopen(nme.ndll, 1): image not found)




это ещё не повод для паники. Стоит всего-лишь выполнить команду:

bash <(curl -s https://gist.github.com/jgranick/5658434/raw/dbdb6bbeecceeeda554a815aa8e57616540d6544/install.sh)





Свинюшки





Чтобы не растягивать статью, буду использовать идущий в комплекте с OpenFL пример мач3 игры PiratePig, скриншот которого можно увидеть выше.


Для того, чтобы получить такую же прелесть у себя, выполним в терминале команду:



openfl create PiratePig


По её окончанию в папке PiratePig появится готовый для работы проект. Запустим его в симуляторе:



cd PiratePig/
openfl test ios -simulator


Если всё прошло нормально (а иначе быть и не должно ;)), появится симулятор iPhone, который будет выглядеть примерно вот так:


Полюбовавшись игрой в симуляторе появляется вполне ожидаемый вопрос: «А как это дело запустить на устройстве?». Ответ очевиден:



openfl test ios


Команда запустит приложение на первом подключённом iOS-устройстве разработчика.


Что дальше?




Кто работал с Adobe AIR помнит тот ужас упаковки приложения под iOS. Благодаря Haxe + OpenFL мы получаем стандартный XCode проект, который можно найти в папке Export/ios/, поэтому процесс отправки приложения в App Store аналогичен таковому для нативных XCode-проектов и неоднократно описан, в том числе на Хабре.

F.A.Q.




Позволяет ли связка Haxe + OpenFL использовать нативные расширения?
Да, более того, про это уже есть статья: habrahabr.ru/post/186230/


Сложно ли перейти на OpenFL после Flash?

Язык Haxe очень близок к AS3, а библиотека OpenFL позволяет использовать привычный Flash API, поэтому переход будет настолько лёгок, насколько это вообще возможно.



А позволят ли моему приложению попасть в AppStore? Кроссплатформенно - значит там интерпретатор!

Популярное заблуждение. После компиляции на iOS Вы получаете нативный код на C++.



Flash API? А что если я хочу использовать OpenGL?
Не смотря на то, что OpenFL близок к Flash API, он не лишает Вас всех преимуществ нативной разработки. Более того, в OpenFL и так всё рендерится через OpenGL. По этой ссылке можно найти пример использования OpenGL.


Есть ли уже в App Store проекты, написанные на OpenFL?

Заключение




OpenFL, как библиотека Haxe, имеет огромные перспективы для кроссплатформенной разработки. В данной статье я показал как использовать её при разработке под iOS, но при этом данную игру можно так же запустить на Android, HTML5 или Flash, и работать она будет везде одинаково ( Полный список поддерживаемых платформ ). Пробуйте, экспериментируйте и делитесь опытом!

This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html


Комментариев нет:

Отправить комментарий