Создание Cocos2D-x проекта в Marmalade SDK

от автора

Некоторое время назад 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/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *