Я новичок в Cocos2D, но у меня возникли серьезные проблемы при попытке загрузить кокосовую сцену в одном из контроллеров UIView, смешанном с другими обычными UIKit UIViewControllers.
Мой проект использует UITabBarController для управления четырьмя контроллерами представления. Три являются обычными контроллерами представления UIKit, в то время как один из них я хочу использовать cocos2D (чтобы нарисовать некоторые спрайты и анимировать их).
Вот что я сделал до сих пор. В методе applicationDidFinishLaunching я инициализирую cocos2D для использования окна и беру первое представление tabbarcontroller:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
if( ! [CCDirector setDirectorType:CCDirectorTypeDisplayLink] ) {
[CCDirector setDirectorType:CCDirectorTypeDefault];
}
[[CCDirector sharedDirector] setPixelFormat:kPixelFormatRGBA8888];
[CCTexture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGBA8888];
[[CCDirector sharedDirector] setDisplayFPS:YES];
[[CCDirector sharedDirector] attachInView: window];
[[[CCDirector sharedDirector] openGLView] addSubview: tabBarController.view];
[window makeKeyAndVisible];
}
Затем в третьем коде UIViewController (где я хочу использовать cocos2D) я делаю это (примечание: представление загружается из файла NIB с пустым UIView и ничего больше): \
- (void)viewDidLoad {
[super viewDidLoad];
// 'scene' is an autorelease object.
CCScene *myScene = [CCScene node];
// 'layer' is an autorelease object.
MyLayer *myLayer = [MyLayer node];
// add layer as a child to scene
[myScene addChild: myLayer];
[[CCDirector sharedDirector] runWithScene: myScene];
}
Однако все, что я вижу, это чистый белый вид и ничего больше. Если я вызываю следующее в viewdidLoad:
[[CCDirector sharedDirector] attachInView: self.view];
Приложение аварийно завершает работу, сообщая, что CCDirector уже подключен. Пожалуйста, помогите!