Spiiin's blog

Логи ниочем - 2

Писать на Objective C пришлось намного быстрее, чем хотелось :)

Сегодня занимался налаживанием отношений между OpenKODE и Crystal SDK. В мануале по интеграции Crystal очень доступно, с иллюстрациями описывается, как добавить библиотеку в стандартный XCode проект. Только после проведения описанных действий не работает часть кнопок и залогиниться невозможно.

Наводку на решение нашел тут -http://permalink.gmane.org/gmane.comp.lib.sdl/46505.
Там на первый взгляд другая проблема - интеграция OpenFeint и SDL, а решение такое же.

Надо сделать в главном цикле приложения OpenKODE (скорее всего в kdMain) дополнительную проверку, активно ли окно Crystal и если нужно, вызвать дополнительную обработку сообщений, чтобы дать возможность библиотеке отреагировать на тапы по экрану.
Как-то так:

void kdAdditionalUpdate()
{
if( achivLib->IsActive() )
{
CFRunLoopRunInMode(kCFRunLoopDefaultMode, 1, TRUE);
};
}

А для отрисовки сообщений внутри игры надо еще сказать Crystal‘у, что в приложении используется OpenGL (точнее ему надо сказать, что Cocos, он поймет). Как это сделать, сказано тут - http://devsupport.crystalsdk.com/default.asp?W24 (доступно только при регистрации).

Тогда взлетит.

upd Взлетит, но упадет. Чтобы полет шел без осложнений, надо еще установать свойство CrystalSession activateCrystalSetting в @"YES", чтобы Crystal не пытался поворачивать свой интерфейс при повороте устройства, потому что иначе приложение может упасть, если начать танцевать с айфоном.