Cocos2D-iPhone和Uikit混合使用問題

項目因爲一些原因必須要使用Cocos2D-iPhone,但是實際開發過程中發現cocos2D在和Uikit混合使用時會有很多問題。其中有兩個最爲難以忍受:cocos2D分辨率適配和Scene和View同時顯示時,View一定會顯示在Scene上面。 
最近爲解決這兩個問題有了一點心得,記錄下……. 
大致思路:因爲cocos2D本身也是建立在一個viewController上,所以在使用cocos2D的時候,將其當做一個普通的viewController進行push/pop;因爲cocos2D頁面切換的效果沒有原生的效果好,且cocos2D做分辨率適配確實麻煩(後續再記錄一篇cocos2D分辨率適配的坑吧),所以工程裏主要用Uikit,只有在不得已的地方纔使用cocos2D。 
主要步驟: 
1 .打開高清模式,以便適配不同分辨率 
2 . 在CCAppDelegate.h中定義一個導航欄,目的是便於其他地方進行訪問 
@property (nonatomic, readonly) CCNavigationController *navController; 
注意: 
如果加載的第一個頁面希望是cocos2D的頁面,這樣即可;但是如果是需要加載的是Uikit頁面,則在初期化navController的時候,需要將其RootView設置爲Uikit頁面。做法如下: 
a.在CCAppDelegate.h中定義一個viewController: 
@property (nonatomic, strong) IBOutlet UIViewController *rootVC;
b.在初期化navController的時候,修改RootView 
navController_ = [[CCNavigationController alloc] initWithRootViewController:director]; 
修改爲: 
rootVC_ = [[[NSBundle mainBundle]loadNibNamed:@"RootVC" owner:self options:nil] lastObject]; 
navController_ = [[CCNavigationController alloc] initWithRootViewController:rootVC_]; 
3.之後就將Cocos2D當成一個普通的ViewController使用即可: 

在需要顯示Cocos2D的時候:

AppController *controller = (AppController *)[UIApplication sharedApplication].delegate; 
[controller.navController pushViewController:[CCDirector sharedDirector] animated:YES];
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章