Некоторое время назад RIM совместно с Marmalade проводили акцию по которой и мне удалось получить планшет Blackberry Playbook. По условиям акции в течение полугода с момента регистрации необходимо разработать и загрузить в Blackberry App World игру сделанную при помощи Marmlade SDK. После изучения в сети некоторого количества материала об этом SDK я наткнулся на записи о том что есть возможность использовать Cocos2D-x, что возможно сократило бы мне время на разработку(хотя я не имею опыта работы ни с Marmalade ни с Cocos2D-x). Далее я скачал последний релиз Cocos2D-x и не обнаружил в нём никаких следов возможности взаимодействия с Marmalade SDK.
Как оказалось позже, раньше ветку порта Cocos2D-x на Marmalade вёл Francis Styck и в ранних версиях были примеры создания Marmalade проекта, но он наткнулся на некие сложности и работа по портированию замедлилась. Затем за работу взялись ребята из Marmalade и на данный момент на гитхабе Cocos2D-x висит их pull request, который должен войти в следующий релиз. Но тем не менее рабочую версию Cocos2D-x с поддержкой Marmalade можно скачать отсюда.
Нигде в сети мне не удалось найти руководства о том как запустить cocos2d-x на Marmalade, поэтому я решил написать своё, т.к. довольно часто натыкался на вопросы как это сделать от других участников акции.
Если у вас ещё не установлен Marmalade SDK, то вам стоит это сделать пройдя по ссылке для скачивания и установки нужной версии.
Итак, после установки Marmalade SDK скачиваем версию cocos2d-x из этого репозитория. Если конечно к моменту прочтения вами этой статьи примеры для Marmalade не были добавлены в основную ветку.
Далее вы можете зайти в папку samples\HelloCpp\proj.marmalade и запустить файл HelloCPP.mkb — он выполнит все нужные действия и запустит IDE которую вы указали при установке Marmalade с открытым проектом HelloCpp. Но как быть если вы хотите создать свой, новый проект? Для этого вам нужно вручную перенести нужные библиотеки и отредактировать файл HelloCPP.mkb.
Я создал новую директорию и назвал её Cocos2D-x. В эту директорию из скачанного репозитория cocos2d-x нужно скопировать 2 папки — cocos2dx и extensions, попутно удалив из них всех папки с префиксом proj кроме proj.marmalade. Теперь здесь же создаём папку для нашего проекта, например m_test. В нашу папку m_test копируем папки Classes и Resources из samples\HelloCpp, а также папку src из samples\HelloCpp\proj.marmalade. Тут же создаём файл m_test.mkb со следующим содержанием:
options { #Папка для поиска субпроектов module_path="../cocos2dx/proj.marmalade/" #Папка из которой эмулятор берёт ресурсы игры s3e-data-dir = "Resources/iphone" } includepaths { Classes } subprojects { IwGL cocos2dx } assets { #Папка из которой реальное устройство берёт ресурсы игры (Resources/iphone) CloseNormal.png CloseSelected.png HelloWorld.png } files { [Main] (src) Main.h Main.cpp (Classes) AppDelegate.h AppDelegate.cpp HelloWorldScene.h HelloWorldScene.cpp AppMacros.h }
Сохраняем и запускаем файл. Откроется наш новый проект, открываем файл AppMacros.h и в 9ой строке меняем kDesignResolution_2048x1536 на kDesignResolution_480x320. Далее открываем app.icf и ищем там эти строки:
WinWidth=480 WinHeight=320
В обычных условиях эти сторки задают размер окна эмулятора, но у меня почему-то считывался только первый параметр и присваивался и как ширина и как высота, так что если у вас будет аналогичная проблема, то просто удалите эти строки, а размеры окна эмулятора укажите в самом эмуляторе в меню Configuration->Surface.
Компилируем под x86 и наслаждаемся результатом.
Какую-либо дополнительную информацию по параметрам mkb файла и по Marmalade вообще можно получить из документации поставляемой вместе с сдк, её можно открыть через Marmalade LaunchPad или просто из папки docs в директории с установленным SDK.
Буду признателен если кто-нибудь знает способ создать cocos2D-x проект проще.
ссылка на оригинал статьи http://habrahabr.ru/post/157599/
Добавить комментарий