Как перезапустить сцену cocos2d и очистить память после предыдущего?Правильный перезапуск сцены cocos2d?
[director replaceScene:s]
отображает розовый экран. Не могу заставить его работать.
Обходной я сделал ниже, однако после закрытия сцены таким образом приложение работает очень медленно и медленно реагирует на касание. MainViewController.m:
- (IBAction)startScene {
[CCTexture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGBA8888];
if ([director runningScene]) {
[director end];
works = NO;
}
if (!works) {
EAGLView *glview = [EAGLView viewWithFrame:CGRectMake(0,0, 768, 1024)];
[self.view addSubview:glview];
[director setOpenGLView:glview];
CCLayer *layer = [PlayLayer node];
CCScene *s = [CCScene node];
[s addChild: layer];
[director runWithScene:s];
}
}
Внутри PlayLayer.m Я возвращаюсь от сцены для просмотра с помощью:
CCDirector *d = [CCDirector sharedDirector];
EAGLView *v = [d openGLView];
[v removeFromSuperview];
приложение выводит изображения (1280x960x32, ImageView внутри Scrollview), и когда пользователь нажимает кнопку, он может запустить сцену cocos2d. Затем пользователь может выйти из сцены обратно в режим просмотра (.xib) и продолжить просмотр изображений, пока не найдет новый, чтобы начать сцену.
Я считаю, что это не лучший способ покинуть сцену, но все остальное, что я пробовал, вызывает приложение для краха, или я продолжаю получать этот розовый экран. В 2 раза я начинаю сцену. Как перезапустить его?
Я буду проверять его как можно скорее, спасибо за память! Мое текущее решение немного хаотично ... – yosh