В предыдущей статье мы узнали, как легко начать писать собственную игру с использованием кроссплатформенного движка 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, запускаем его, выбираем установку из интернета, указываем путь, сервер и т.д.
Важный , когда дойдем до окна выбора инсталляционных пакетов, ставим галочку на пакете делать (введите слово make в поле поиска).
Все установлено и готово к работе, можно продолжать.
Настройки
Чтобы не потерять исходные файлы, давайте переименуем папку нашего проекта в 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 ) и название нашего проекта (введите МойКокосПроект ).
Последнее, что нас спросят, — это идентификатор версии Android. Например, для версии 2.1 нужно указать 3 , а для 2.2 - 4 и так далее.
Мы будем использовать версию 2.1, поэтому вводим 3 .
Нажмите Входить и дождитесь завершения процесса.
Скрипт создает папку с введенным нами именем проекта, т. е.
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 ).
Если все было сделано правильно, то на выходе будут скомпилированные библиотеки 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. И что мы видим:
Изображение отображается перевернутым, текст и кнопка выхода находятся не там, где должны быть.
Давайте откроем файл 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. После изменений получим следующую картину:
В итоге мы добились того, чего хотели.
Наш проект был успешно запущен на эмуляторе Android-устройства.
Теги: #Android #разработка игр #кроссплатформенность #android ndk #eclipse #Cocos2d #разработка игр
-
Сила Страсти — Лучший Друг Блоггеров
19 Oct, 24 -
Самые Точные Часы В Мире
19 Oct, 24 -
Api - Всё Предусмотрено
19 Oct, 24 -
Верните Логотип На Место!
19 Oct, 24