Cocos2D-X: Создание Проекта Для Android

В предыдущей статье мы узнали, как легко начать писать собственную игру с использованием кроссплатформенного движка cocos2d-x, и научились запускать наше приложение на платформе Win32. Но этого недостаточно, ведь основная цель — разработка для мобильных устройств.

В этой статье мы соберем проект для операционной системы Android.



Установка программы

Будем работать с проектом из предыдущего статьи .

Мы последовательно устанавливаем и настраиваем следующее программное обеспечение: JDK и JRE, Android SDK и среду разработки плагинов Eclipse + ADT. Установка этого набора инструментов описана во многих статьях, например в этот .

Нам также нужна библиотека Android НДК , на сайте cocos2d-x не рекомендуют использовать официальную версию, и отправляют всех на сайт Дмитрий Москальчук .

Оттуда скачиваем нужную нам версию (я буду использовать р5 ).

После скачивания распакуйте архив в любую удобную папку (например: C:\android\android-ndk-r5-crystax-1\ ).

Для компиляции нативного кода нам понадобится цигвин , версия не ниже 1.7. Скачиваем setup.exe, запускаем его, выбираем установку из интернета, указываем путь, сервер и т.д.

Cocos2d-x: Создание проекта для Android

Важный , когда дойдем до окна выбора инсталляционных пакетов, ставим галочку на пакете делать (введите слово make в поле поиска).



Cocos2d-x: Создание проекта для Android

Все установлено и готово к работе, можно продолжать.



Настройки

Чтобы не потерять исходные файлы, давайте переименуем папку нашего проекта в MyCocosProject, например, назовем ее MyCocosProject1 (не забудьте закрыть VisualStudio).

Затем отредактируйте файл создать-android-project.bat , он находится в рабочем каталоге, где установлен cocos2d-x, там же, где и наш проект MyCocosProject (в моем случае каталог c:\android\rep\cocos2d-1.0.1-x-0.9.1\ ).

Откройте файл в текстовом редакторе и измените пути к каталогам cygwin, Android SDK Tools и NDK в строках ниже:

set _CYGBIN=f:\cygwin\bin set _ANDROIDTOOLS=d:\android-sdk\tools set _NDKROOT=e:\android-ndk-r5

После изменения я получил следующие строки:

set _CYGBIN=с:\cygwin\bin set _ANDROIDTOOLS=c:\android\android-sdk-windows\tools set _NDKROOT=c:\android\android-ndk-r5-crystax-1

Сохраните файл.

В процессе написания статьи небольшой « ошибка "В новом выпуске( 1.0.1-х-0.9.1 ) библиотеки cocos2d-x, разработчики решили заменить имя папки ресурс на Ресурсы , чтобы объединить проекты для iPhone и Android. Но, как это часто бывает, поменяв в одном месте, забыли поменять в другом.

Возможно, разработчики уже исправили эту ошибку, а может и нет. Мы исправим ошибку сами.

Перейти в папку \шаблон\андроид\ , ищем файл build_native.sh и в блокноте (лучше использовать нестандартный блокнот) редактируем строку:

RESOURCE_ROOT=$GAME_ROOT/Resource

заменив его на:

RESOURCE_ROOT=$GAME_ROOT/Resources

Мы запускаем наш новый создать-android-project.bat .

В окне консоли нам будет предложено ввести имя java-пакета (введите org.cocos2dx.myapp ) и название нашего проекта (введите МойКокосПроект ).



Cocos2d-x: Создание проекта для Android

Последнее, что нас спросят, — это идентификатор версии Android. Например, для версии 2.1 нужно указать 3 , а для 2.2 - 4 и так далее.

Мы будем использовать версию 2.1, поэтому вводим 3 .



Cocos2d-x: Создание проекта для Android

Нажмите Входить и дождитесь завершения процесса.

Скрипт создает папку с введенным нами именем проекта, т. е.

MyCocosProject, и генерирует в ней шаблон Java-проекта.

Скопируем туда все каталоги и файлы из ранее сохраненной папки MyCocosProject1, а также перезапишем файлы ресурсов из каталога.

Ресурс в папку Ресурсы (это следствие вышесказанного) ошибка », скорее всего это временная проблема и в ближайшее время разработчики согласуют названия папок для различных платформ).

Теперь все готово для компиляции проекта под Android.

Сборка

Давайте запустим CygWin и используя команду cd ( cd /cygdrive/c/android/rep/cocos2d-1.0.1-x-0.9.1/MyCocosProject/android ), заходим в нашу папку, затем выполняем файл build_native.sh ( .

/build_native.sh ).



Cocos2d-x: Создание проекта для Android

Если все было сделано правильно, то на выходе будут скомпилированные библиотеки libcocos2d.so , libcocosdenshion.so И libgame.so .

Откройте Eclipse, готовый к работе, и создайте новый проект Android ( Новый-> Проект, проект Android ).

Важный , чтобы имя проекта совпадало с именем нашего проекта, сгенерированного скриптом, т.е.

МойКокосПроект .

Поставьте галочку напротив Создать проект из существующего источника .

В поле Location указываем путь нашего проекта ( C:\android\rep\cocos2d-1.0.1-x-0.9.1\MyCocosProject\android\ ).

API выберите Android 2.1. Нажмите Заканчивать .

Проект готов.

Запускаем его на эмуляторе с SDK версии 2.1. И что мы видим:

Cocos2d-x: Создание проекта для Android

Изображение отображается перевернутым, текст и кнопка выхода находятся не там, где должны быть.

Давайте откроем файл AppDelegate.cpp и найдите следующую строку:

// sets landscape mode pDirector->setDeviceOrientation(kCCDeviceOrientationLandscapeLeft);

Именно она повлияла на некорректное отображение.

На первый взгляд все в этом коде выглядит логично, но вероятно разработчики еще не осознали универсальность кода для разных платформ.

В нашем случае можно закомментировать эту строку или написать следующую конструкцию:

#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) // sets landscape mode pDirector->setDeviceOrientation(kCCDeviceOrientationLandscapeLeft); #endif

Чтобы успешно запустить проект после изменения исходного кода, необходимо сначала очистить проект в Eclipse( Проект-> Очистить ).

Затем в консоли cygwin повторно выполните build_native.sh( .

/build_native.sh ) и после этого запустите проект в Eclipse. После изменений получим следующую картину:

Cocos2d-x: Создание проекта для Android

В итоге мы добились того, чего хотели.

Наш проект был успешно запущен на эмуляторе Android-устройства.

Теги: #Android #разработка игр #кроссплатформенность #android ndk #eclipse #Cocos2d #разработка игр

Вместе с данным постом часто просматривают: