2013-12-16 3 views
1

У меня возникла очень сложная проблема. В игре Cocos2d-x, над которой я сейчас работаю (основная часть написана другим разработчиком, я просто заканчиваю ее, и теперь она должна работать только на iOS, так что мне все равно, все вещи, связанные с Android) Мне нужно использовать UIViewController. Я представляю его и освобождает от должности в очень обычным способом:cocos2dx Ошибка OpenGL 0x0506 при увольнении UIViewController

присутствует:

SDMoreAppsViewController *vc = [[SDMoreAppsViewController new] autorelease]; 
[viewController presentViewController:vc animated:NO completion:nil];// viewController is UIWindow root view controller 

уволить:

UIViewController *controller = self.presentingViewController; 
[controller dismissViewControllerAnimated:NO completion:nil]; 

После того, как контроллер представления успешно удален с поля я вижу сообщение в моей консоли говорил мне, что opengl error 0x0506. Это сообщение напечатано из методов swapBuffers от EAGLView и draw от CCSprite. Наряду с этим сообщением моя вся сцена становится невосприимчивой. Нажатие кнопок не дает результата.

Я уже много пробовал. Я попытался подтолкнуть контроллер своего вида и добавить его в качестве дочернего элемента вместо представления, но он даже не отображает контроллер вида (метод viewWillAppear не вызван), я также попытался добавить его представление в качестве подсмотра в окно моего приложения, но это также приносит много разных ошибок.

Я использую версию cocos2d-x cocos2d-2.1rc0-x-2.1.3.

Раньше кто-то решал такую ​​проблему? Какие-либо предложения?

ответ

5

Перед presentViewController, пауза рендеринга:

CCDirector::sharedDirector()->pause(); 
CCDirector::sharedDirector()->stopAnimation(); 

вызов резюме и startAnimation в блоке

+0

заканчивания работал для меня, спасибо! –

Смежные вопросы