Я работаю месяц с небольшим над игрой, используя cocos2d-x на платформе marmalade. Поиск информации о в Интернете был разочаровывающим опытом из-за его редкости, но эта проблема усиливается в десять раз, когда добавляется cocos2d-x — мало кто использует эту комбинацию или, по крайней мере, задает и отвечает на вопросы об этом. . Но я отвлекся. В настоящее время я работаю над тем, чтобы сторона Android работала, прежде чем иметь дело с iOS.
Я хочу добавить рекламу в свою игру. Я нашел sdks для marmalade и для cocos2dx, но не для обоих одновременно. Это вызывает вопросы.
IwGameAds: iw2D и iwgl работают не очень хорошо, потому что они изменяют оба состояния изменения gl. Cocos2d-x использует gl. Решение этой проблемы состоит в том, чтобы обернуть iw2D с сохранением и восстановлением, как указано здесь, но iwgameads требует, чтобы это было помещено в основной цикл:
// Update the ads view
IW_GAME_ADS_VIEW->Update(1.0f);
// draw the ads view
IW_GAME_ADS_VIEW->Draw();
Проблема здесь в том, что реализация основного цикла cocos2d-x скрыта от меня. Я мог бы достаточно легко подключить обновление, но рисовать сложнее — куда мне его поместить? Нужно ли переопределять draw() моего игрового слоя, вызывать super и выполнять сохранение состояния gl перед вызовом draw() iwgamead?
RevMob: ни revmob sdk (marmalade, ни cocos2d-x) не позволяют позиционировать баннер (баннер по умолчанию растягивается, чтобы занять 1/4 горизонтального экрана) или обратные вызовы. Мне удалось легко получить баннеры и полноэкранные изображения с помощью их marmalade sdk, но игра продолжает работать за полноэкранным межстраничным объявлением всякий раз, когда оно соизволит появиться после вызова ... что часто приводит к сбою cocos2d-x.
Их cocos2d-x sdk гораздо сложнее интегрировать с marmalade, и я не смог пройти мимо ошибок «jni.h not found». Я предполагаю, что если бы я заработал, сбой / работа в фоновом режиме разрешились бы сами собой, но у меня остались бы более чем проблематичные недостатки дизайна.
InMobi: подпроект s3eInMobiAds от marmalade хорош и все такое, но не позволит мне протестировать что-либо без опубликованного приложения. Это более перспективно, чем RevMob, потому что позиционирование баннеров и обратные вызовы событий кажутся возможными, но из-за конфликтов gl marmalade и cocos2d-x это может оказаться таким же плохим решением, как и iwgameads. Я написал им по электронной почте о возможности тестирования + интеграции во время разработки моего приложения.
s3eFlurryAppSpot: тестовый проект, поставляемый с мармеладом, работает (есть ошибка, из-за которой первое объявление не отображается), но я предполагаю, что он не очень хорошо работает с cocos2d-x, так как ничего не отображается, несмотря на то, что в журналах говорится в противном случае. Полноэкранные объявления работают, но выглядят только портретными. Как и в случае с revmob, они не приостанавливают игру, но есть, по крайней мере, обратные вызовы, позволяющие полностью контролировать ход событий.
AdMob и другие: другие поставщики рекламы, которых я нашел для cocos2d-x, подключаются к базовой версии java. Мне все чаще кажется, что это может быть то направление, в котором мне нужно двигаться для внедрения рекламы. Однако я могу найти скудные ресурсы о том, как это сделать, или даже о том, возможно ли это под мармеладом.
Кто-нибудь добился успеха в рекламе с использованием marmalade + cocos2d-x и мог бы указать мне правильное направление?