Интеграция cocos2d в приложение UIKit - PullRequest
0 голосов
/ 23 февраля 2012

У меня проблемы с интеграцией сцены cocos2d во вкладку существующего приложения.Я разработал сцену, используя шаблон Xcode, который поставляется с cocos2d, и он работает нормально, но когда я пытаюсь загрузить ту же сцену в существующее приложение, все, что получается, - это черный экран.когда я загружаю UIViewController, связанный с вкладкой

-(void)viewDidLoad {
        director = [CCDirector sharedDirector]; //declared in the header file
        //declared in the header file, sized as whole screen minus the tab bar
        coolview = [CCGLView viewWithFrame:CGRectMake(0,0, 320,321) pixelFormat:kEAGLColorFormatRGB56 depthFormat:0 preserveBackbuffer:NO sharegroup:nil multiSampling:NO numberOfSamples:0]; 
        [director setView:coolview];
        [self setView:coolview];
        [director setAnimationInterval:1.0/60];
        [director setDelegate:self];
        [director setProjection:kCCDirectorProjection2D];
        [director runWithScene:[HelloWorldLayer scene]];
        }

Есть идеи, почему я должен получить черный экран?Чего мне не хватает?

Код в слое HelloWorld выполняется, объекты создаются, но кажется, что они не отображаются.

Я также получаю следующие отзывы:

OpenGL error 0x0501 in -[CCShaderCache loadDefaultShaders] 174
OpenGL error 0x0501 in -[CCTextureAtlas initVAO] 167
OpenGL error 0x0501 in -[CCDirector setView:] 308
OpenGL error 0x0501 in -[CCTextureAtlas initVAO] 167

но мне не удалось найти значение кодов ошибок.Я использую cocos2d версии 2.

Заранее благодарен за любую помощь Luca

Небольшое обновление: эта проблема не возникает с версией 1.0.1, заменяя CCGLView на EAGLView.Поэтому я предполагаю, что это может быть небольшая ошибка в этом выпуске.

К сожалению, я не могу перейти на 1.0.1, потому что мне нужны некоторые функции box2d v2.2, который поставляется только с cocos2d v2.0.Я пытаюсь заставить box2d v2.2 работать с cocos v1.0.1, но он становится довольно уродливым!

Кто-нибудь знает, как я могу это исправить в 2.0 или, по крайней мере, указать мне правильное направление?Где может быть проблема?В CCDirector или CCGLView?

Спасибо, Лука

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012

После того, как вы закончите со всеми вещами инициализации, о которых говорил Ник Булл, вы должны заметить одну вещь: cocos2d использует свой собственный CCLayer.Но я думаю, что этот слой и слой во всех подклассах UIView - это одно и то же.Если вам удастся найти способ заменить их или каким-либо образом связать, вы можете использовать любой персонал cocos2d в своих представлениях.Это должно быть отправной точкой для вас, удачи.

0 голосов
/ 23 февраля 2012

У вас также должен быть весь код инициализации Cocos2D. Cocos2D создает контекст рендеринга openGL, который затем рисуется для отображения спрайтов. Если вы посмотрите на шаблонное приложение, которое поставляется с кокосами, в AppDelegate есть множество вещей инициализации.

Я даже не уверен, возможно ли (или возможно, если это легко) включить сцену cocos2d в существующее приложение iOS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...