cocos2d-x初识 CCDirector类的认识

来源:互联网 发布:深圳市云计算协会 编辑:程序博客网 时间:2024/05/18 11:28

CCDirector类负责初始化OpenGL ES和控制scenes之间的转换。CCDirector类是单例的,它以栈的方式处理scenes的调用,并且知道当前哪个scene是激活状态。

如游戏中打开背包(打开背包前为场景A,背包界面为场景BAG),即BAG入栈,当前屏幕显示出来的即为BAG场景

//获取设备的宽高

CGSize size=[[CCDirector sharedDirector] winSize];

//将场景对象压入栈中,并激活(此时不能有已经激活的场景,因此该方法常用于刚进游戏时)

-(void) runWithScene: (CCScene)scene*

//替换当前激活的场景,同时将旧场景从堆栈中删除,新场景压入堆栈。

-(void) replaceScene: (CCScene)scene*

//添加新的场景进栈,并将其激活。 挂起当前运行的场景,并压栈到待运行场景队列。

-(void) pushScene: (CCScene) scene*

//当前激活的场景出栈,激活上一个场景。

-(void) popScene

//暂停。用法:[[CCDirector sharedDirector] pause];

-(void) pause

//恢复。

-(void) resume

//获取Director单例

CCDirector::sharedDirector()

//停止动画(当程序被切换时会被调用),屏幕上将不会绘制东西。示例代码如下:

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

与之对应的是

CCDirector::sharedDirector()->startAnimation();

默示获得视口(可视区域)的大小,若是DesignResolutionSize跟屏幕尺寸一样大,则getVisibleSize便是getWinSize。

CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();

默示可视区域的出发点坐标,这在处理惩罚相对地位的时候很是有效,确保节点在不合辨别率下的地位一致。

CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();

不得不提的是

 CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();

CCEGLView是窗口,在不同平台上有不同的实现,而CCEGLViewProtocol是CCEGLView定义的接口,所以学习CCEGLView,主要是要学习CCEGLViewProtocol中定义的接口。

通过

pDirector->setOpenGLView(pEGLView);

来初始化,将pDirector“塞进”CCEGLView窗口。

引用:http://blog.csdn.net/newpact/article/details/10807761

0 0
原创粉丝点击