Pull to refresh

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

Reading time 3 min
Views 15K


Некоторое время назад 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 проект проще.
Tags:
Hubs:
+18
Comments 8
Comments Comments 8

Articles