Pull to refresh

Cocos2d-x: Пишем первое кроссплатформенное приложение

Reading time 3 min
Views 69K

Предисловие.


Программирование для мобильных платформ становиться все популярнее. Ежедневно, на свет появляются новые приложения и игры, что, естественно, увеличивает конкуренцию на этом рынке. И каждый, уважающий себя разработчик должен разрабатывать и поддерживать свой программный продукт, как минимум на двух самых популярных платформах, коими, на мой взгляд, являются android и iOS. Еще в недавнем прошлом, для такой поддержки, требовалось разрабатывать две различные программы на разных языках программирования. Но сейчас, появляется много кроссплатформенных движков, помогающих экономить разработчикам драгоценное время.

В этой статье я хочу показать простоту использования одного из них. Cocos2d-x – бесплатный кроссплатформенный игровой 2D движок — порт популярного движка cocos2d для iPhone. Мультиплатформенный «кокос» поддерживает iOS, Android, WoPhone и Win32. Поддержка Win32 не полноценна, работает через эмуляцию OpenGL ES и служит только для разработки и отладки приложений. Создатели движка не планируют реализацию полноценной поддержки Windows, и к тому же заявляют, что далеко не на всех компьютерах будет работать эмуляция OpenGL ES. Чуть ниже, в статье, мы с вами создадим простой проект, который в дальнейшем, можно будет собрать под вышеперечисленные платформы.

Практика


От слов, к делу. Язык программирования C++, в качестве среды, используем Microsoft Visual Studio 2010. Первым делом нужно скачать сам движок (На момент написания статьи использовалась версия движка cocos2d-1.0.1-x-0.9.1.zip). Распаковываем zip архив в удобную для вас папку (в моем случае c:\android\rep\cocos2d-1.0.1-x-0.9.1\). Структуру рабочего каталога можно увидеть ниже:



  • В подкаталогах Box2D и chipmunk находятся исходные файлы соответствующих библиотек физических движков;
  • В каталоге lua – исходники библиотеки поддержки языка lua;
  • Папка cocos2dx содержит исходники основного движка кокоса;
  • В templates вспомогательные файлы шаблоны, для генерации проектов под разные платформы;
  • Так же здесь располагаются несколько тестовых проектов, таких как HelloWorld, HelloLua и Tests.

Перед тем, как создавать наш проект, выполним файл install-templates-msvc.bat, который создаст шаблоны для Visual Studio 2010. Затем, откроем в VS решение(солюшен) cocos2d-win32.vc2010.sln. В списке проектов, для дальнейшей работы, нужно выполнить построение библиотек в нашем решении(солюшене). Если лень отстраивать каждый проект по отдельности, можно построить тестовое приложение tests, библиотеки соберутся автоматом. И наконец, создадим новый проект (Ctrl-Shift-N). В качестве шаблона выберем Cocos2d-win32 Application, имя пусть будет MyCocosProject, а для простоты, проект будет находиться в той же папке, что и сам движок (c:\android\rep\cocos2d-1.0.1-x-0.9.1\), если вы выберете другое расположение, необходимо будет в настройках проекта правильно указать пути к библиотекам, решение(солюшен) оставляем тем же. Жмем OK.



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


Открываем файл HelloWorldScene.cpp в проекте и ищем строчку:

CCLabelTTF* pLabel = CCLabelTTF::labelWithString("Hello World", "Thonburi", 64);

заменяем строку «Hello World», на любой текст, например «My First Crossplatform Application», размер шрифта меняем с 64 на 24!
Делаем наш проект запускаемым, и выполняем его (F5). Если библиотеки были построены успешно, то и наше приложение должно запуститься.



Если у вас получилось запустить приложение на вашем PC под управление Windows, то возможно, вы сделали первый шаг к написанию собственной мультиплатформенной игры, тот шаг, который вы до сих пор не решались сделать. Пока наше приложение собрано только под Win32, но мы можем собрать его и под iPhone, и под Android. На мой взгляд, основным плюсом данного движка, является то, что разработчику для отладки не обязательно иметь под рукой ни «живые» мобильные устройства, ни их эмуляторы, ни средства компиляции под эти платформы. Пишем и проверяем все под Win32, а все остальное понадобиться лишь на этапе окончательной сборки, когда основные алгоритмы будут уже реализованы. Описание процесса сборки проекта под другие платформы достойно отдельной статьи, которую я обязательно постараюсь написать в ближайшее время.

Послесловие.


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

Ссылки


Tags:
Hubs:
+29
Comments 12
Comments Comments 12

Articles