Что такое Cocos2d-x?
Cocos2d-x – кросс-платформенный фреймворк для игр (и других графических приложений, например, интерактивных книг), основанный на cocos2d для iOS, но вместо Objective-C использующий языки C++, JavaScript или Lua.
Одно из преимуществ этого фреймворка – возможность создания игр для разных платформ (Android, iOS, Win32, Windows Phone, Mac, Linux и другие). При этом основа программы остается той же – требуется лишь незначительная адаптация под конкретную платформу.
Консоль Cocos2d-x
Консоль cocos2d-console появилась в версии 3.0. Это командная строка, предусматривающая те же функции, что и средства управления проектами в Cocos2d-x или Cocos2d-JS — создание, выполнение, построение, отладку и т.д.
Создаём свою первую игру
1. Скачайте последнюю версию фреймворка и распакуйте архив. В данном руководстве использовалась версия 3.3rc0, а архив фреймворка был распакован на рабочий стол (C:\Users\intel-user\Desktop\cocos2d-x-3.3rc0).
Структура директории Cocos2d-x версии 3.3 RC0
2. Чтобы создать в cocos2d-x новый проект, используйте setup.py (скрипт на языке Python), который находится в папке фреймворка. Он позволит конфигурировать все переменные среды для платформ Win32 и Android. Перед выполнением setup.py вам потребуется скачать, инсталлировать и конфигурировать следующие элементы:
Если вы не установили Python Runtime, скачайте версию 2.7.6 отсюда: www.python.org/download
Расположение setup.py
3. Откройте командную строку (cmd.exe) и выполните следующие команды:
– Перейдите в папку скрипта (папку фреймворка):
cd C:\Users\intel-user\Desktop\cocos2d-x-3.3rc0
– Выполните скрипт setup.py:
python setup.py (or setup.py only)
Примечание: чтобы выполнить команду Python из командной строки, добавьте в переменную среды path папку, куда установлен Python. Скрипт потребует пути инсталляции для Android SDK, Android NDK и ANT.
– Папка Android NDK:
Cocos2d-console требует указания пути к папке NDK
– Путь к папке Android SDK:
Cocos2d-console требует пути к папке SDK
– Путь к папке Apache ANT:
Cocos2d-console требует пути к папке ANT
После указания всех путей снова откройте командную строку (cmd.exe). Это действие необходимо для использования команд cocos2d-console.
4. Наберите cmd.exe, чтобы выйти на командную строку (команды cocos2d-console можно вводить только здесь) и снова откройте папку фреймворка:
cd C:\Users\intel-user\Desktop\cocos2d-x-3.3rc0
На следующем шаге мы создадим новый проект Cocos2d-x:
cocos new MyGame –p com.Project.MyGame –l cpp –d Project
Создание проекта Cocos2d-x
Краткое пояснение параметров:
- new: создаёт новый проект; за ним должно следовать имя проекта (в данном примере -MyGame);
- -p: задаёт имя пакета;
- -l: выбирает язык программирования; значением может быть cpp или lua;
- -d: директория, в которой фреймворк создаёт структуру проекта.
Если всё нормально, то проект создается в папке Project – в директории, куда был распакован фреймворк.
Структура директории MyGame
Созданный проект содержит базовый код игры (классы), ресурсы (изображения, аудио и т.д.) и по одному проекту для каждой поддерживаемой фреймворком платформы.
Создаём Android-приложение
Требования:
- Для создания игровых приложений для Android вам нужно конфигурировать все переменные среды (Android SDK, Android NDK и ANT). Если вы ещё не выполнили этот шаг, смотрите выше раздел «Создаём свою первую игру».
- Установленный Java Development Kit (JDK)
Примечание: для создания Android-приложений Cocos2d-console использует команду javac, поэтому нужно добавить переменную среды JAVA_HOME (путь для JDK).
1. Мы будем компилировать игровую программу для нескольких архитектур, а фреймворк не компилирует по умолчанию для x86 и armeabi-v7a. Отредактируйте файл Application.mk в C:\Users\intel-user\Desktop\cocos2d-x-3.3rc0\Project\MyGame\proj.android\jni
Расположение файла Application.mk
2. Добавьте в этот файл следующую строку:
APP_ABI := armeabi armeabi-v7a x86
Application.mk после добавления строки APP_ABI
Теперь, после добавления целевых архитектур, давайте скомпилируем нашу игру!
3. Используя подсказку командной строки, перейдите в папку фреймворка:
cd C:\Users\intel-user\Desktop\cocos2d-x-3.3rc0
4. Выполните показанную ниже команду и запустите игру для Android:
cocos run –s Project\MyGame –p android
Выполнение команды для компиляции и выполнения игры для Android
- run: компилирует и выполняет проект;
- -s: путь к папке проекта;
- -p: выбранная платформа.
Примечание: если требуется только компиляция, введите:
cocos compile –s Project\MyGame –p android
Если всё работает правильно, то команда cocos2d-console будет использовать adb (если это задано в переменных среды) для инсталляции файла APK на подключённом устройстве или инициализированном эмуляторе. При их отсутствии команда будет ожидать доступности устройства или эмулятора, как показано ниже:
Команда ожидает устройства или инициализированного эмулятора
При наличии подключенного устройства или инициализированного эмулятора появится следующий экран:
Экран игровой программы на платформе Android
Создание приложений Win32 (для ПК под Windows 7 или Windows 8)
Нам потребуется Visual Studio 2012 или более поздняя версия.
1. Используя приглашение командной строки (cmd.exe), перейдите в папку, куда был распакован фреймворк:
cd C:\Users\intel-user\Desktop\cocos2d-x-3.3rc0
2. Для компиляции и запуска игры на выполнение в среде Windows введите команду:
cocos run –s Project\MyGame –p win32
Выполнение команды компиляции и запуска игры в Windows
Кратко о параметрах:
- run: компиляция и запуск на выполнение выбранного проекта
- -s: путь к папке проекта
- -p: выбранная платформа
Примечание: если требуется только компиляция, используйте “compile” вместо “run”, как в следующем примере:
cocos compile –s Project\MyGame –p win32
Если всё работает правильно, то после выполнения команды run вы увидите следующий экран:
Экран игры на платформе Windows
Для компиляции и запуска проекта игры можно использовать Visual Studio:
1. В директории Project откройте файл Visual Studio MyGame.sln в папке “proj.win32”.
Структура директории проекта Win32
2. Для компиляции проекта нажмите F6 (или используйте меню Build -> Build Solution) и F5 для его запуска (либо меню Debug -> Start Debugging). После построения и выполнения вы должны увидеть тот же экран, что и после выполнения шагов для консоли.
Проект Win32, открытый в Visual Studio
Итак, теперь вы знаете, как создать и скомпилировать игру для Android (x86 и ARM), Windows 7 и Windows 8 (в режиме десктопа), браво :)
Чуть не забыли
В настоящее время в версии Cocos2d-x 3.3 есть проблема – инструментарий не позволяет создавать проекты (подробности здесь). Эта проблема исправлена в последней предварительной редакции, но в последнем релизе Cocos2d-x пока остается.
Подробности по оптимизации компиляции смотрите в наших замечаниях по оптимизации.
Хозяйке на заметку
» Исходный код фреймворка Cocos2d-x доступен по лицензии MIT License, а скачать его можно здесь.
» Cocos2d-x и документация по нему
» Консоль cocos2d-console
Комментарии (7)
and7ey
15.06.2015 15:40+1Обещали рассказать о том, как создать простую игру. А на самом деле показали, как показать картинку с помощью Cocos2D.
Жду следующую статью, где вы действительно опишите, как создать простую игру (например, типа настольной, где игроки бросают кубики по очереди и их фишки передвигаются по полю).
SBKarr
15.06.2015 15:44+4Мы используем cocos2d-x в приложениях уже два года (тогда была ещё версия 2.0).
Cocos2d-x близок к железу по сравнению с другими подобными проектами. В некоторых местах это позволяет существенно ускорить работу за счёт низкоуровневых оптимизаций. Например, у нас есть своя полуавтоматическая система для пакетной отрисовки в дополнение к встроенной. Встроенная система умеет «пакетить» только идущие подряд вызовы отрисовки, а наша собирает однородные не перекрывающие друг друга объекты в буфер вне зависимости от порядка. Самое оно для типографики, теней, и тому подобного.
С другой стороны, близость к железу может мешать глубокому освоению. Хотя, если вы пишете что-то достаточно большое, знание OpenGL пригодится всегда.
У cocos2d-x мало хороших периферийных инструментов. У нас собственная реализация потоков, сетевого взаимодействия, своя событийная система. Это всё в самом движке уже есть, но реализация хромает на обе ноги. Для проекта среднего уровня, тем не менее, более чем достаточно. Ещё нас категорически не устроила реализация рендеринга шрифтов, но это уже относится к нашей специфике.
В целом, не смотря на кучу возможных жалоб, это лучший проект в сфере по мнению меня и команды. И открытая лицензия играет немалую роль, можно без проблем исправить или дополнить движок по своему вкусу.
egoserg
15.06.2015 19:11Подскажите пожалуйста как убрать три точки screencloud.net/v/u6dL
Я не смог найти как это убрать.
Буду благодарен
nullc0de
16.06.2015 13:25+1Реально вымораживают подобные статьи, где в заголовке суть одна «Создание многоплатформенных игр с использованием Cocos2d-x версии 3.0 и выше» и думаешь, что будет реальный пример кода и разные подводные камни в разработке рассмотрят. В итоге все содержимое сводится к «Как установить ...», коих статей итак полно, а реально достойных статей мало в рунете и проще читать все на английском.
gorz
Я конечно понимаю, что это перевод, но сейчас уже доступна версия 3.6, зачем писать устаревшую информацию?