Cocos2D 添加 UIView
cocos2d是使用繼承于ccnode的結(jié)點(diǎn)類型的層。但是我想用一個(gè)opengl來繪制,就簡(jiǎn)單的情況來說必須得加一個(gè)uiview。現(xiàn)轉(zhuǎn)載如下:
第一部分::
使用Cocos2D開發(fā)游戲和應(yīng)用程序的時(shí)候,時(shí)常有些功能用系統(tǒng)控鍵很容易就實(shí)現(xiàn),而cocos2d很麻煩,這時(shí)候就需要在cocos2D的程序中添加UIView或者UIView的子類。如果需要響應(yīng)重力感應(yīng)來支持旋轉(zhuǎn),可以向cocos2d程序中添加UIViewController的子類。
方法很簡(jiǎn)單:[[[CCDirector?sharedDirector]?openGLView]?addSubview:[UIView view]];
?
第二部分,轉(zhuǎn)自人人,目前看不太懂,以后應(yīng)該用的到
Cocos2d中對(duì)UIView的使用
Cocos2d中想使用UIView等UIKit系的控件,最常用常見的方法,就是通過openGLView來做,雖然這個(gè)非常簡(jiǎn)單,還是簡(jiǎn)述下吧。
比如,現(xiàn)在我想在cocos2d中使用UIImageView這個(gè)控件,非常簡(jiǎn)單,直接上代碼。
?
CGRect frame = [[[CCDirector sharedDirector] openGLView] frame];_animateImageView = [[UIImageView alloc] initWithFrame:frame];
[[[CCDirector sharedDirector] openGLView] addSubview:_animateImageView];
?
不用了的時(shí)候。
?
[_animateImageView release];[_animateImageView removeFromSuperview];
?
諾,這樣呢,有一個(gè)問題,使用的UIImageView若不remove掉的話總是顯示在最上面,再加個(gè)Sprite啥的也加不上去。恰好,這次需要的圖比較大(320*480),還想借助UIImageView的動(dòng)畫功能,這下郁悶了。
怎么樣才能即能讓他順利展示又能再上面添加Sprite或者CCMenu等呢。
?
OK, 直接給出解決方案吧。因?yàn)橐坏┎捎胦penGLView addSubView的話肯定是不行的,那一個(gè)解決思路是在openGLView下插入一層View, 同時(shí)把openGLView設(shè)置成透明的,這樣不就行了。
代碼如下,首先要?jiǎng)拥氖茿ppDelegate,在openGLView下加入一層。
?
//Set glView by wordsworth Mar.26[glView setMultipleTouchEnabled:YES];
glView.opaque = NO;
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT);
//add a view by wordsworth Mar.26, in order to insert another view in MainBoardLayer
overView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
overView.opaque = NO;
overView.backgroundColor = [UIColor clearColor];
[overView addSubview:glView];
[window addSubview:overView];
?
最后,把我們的ImageView盡情的寫入openGLView下面吧,這樣在上面加上各種各樣的CCSprite、CCMenu等不用擔(dān)心不顯示啦。
?
AppDelegate * delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];[delegate.overView insertSubview:_animateImageView belowSubview:[[CCDirector sharedDirector] openGLView]];
?
其他的UIKit控件也差不多可以按這個(gè)套路來了。
轉(zhuǎn)載于:https://www.cnblogs.com/baozou/p/3273437.html
總結(jié)
以上是生活随笔為你收集整理的Cocos2D 添加 UIView的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: datatable DataRow
- 下一篇: PL/SQL之高级篇