转自:http://blog.csdn.net/qiurisuixiang/article/details/8761191
1 CCDirecor(导演)在cocos2d-x引擎中是一个很重要的类,CCDirector使用单例模式实现,所以整个游戏中只有一个导演。CCDirector在整个游戏中扮演很重要的角色:(1)在开始游戏和结束游戏时负责游戏的初始化和销毁工作。(2)管理游戏的关卡,即场景。负责各个场景之间的切换。(3)设置、获取系统信息,比如调整OpenGL相关的设置,获取屏幕的大小等
2 cocos2d-x除了提供CCDirector,还提供一个了一个CCDisplayLinkDirector(一个可以自动刷新的CCDirector)。在cocos2d-x引擎中,CCDirector和CCDisplayLinkDirector类图如下(刚开始学这个工具,大概列举了下,画得不标准)
3 CCDirector是一个单例类,CCDirector类中主要方法解释
-
- CCDirector*sharedDirector(void);
//获取当前运行的场景
- CCScene*getRunningScene(void);
-
-
- doublegetAnimationInterval(void);
- //设置FPS值
- voidsetAnimationInterval(doubledValue);
-
- //是否在屏幕底部显示FPS
- boolisDisplayStats(//设置在屏幕底部显示FPS
- voidsetDisplayStats(boolbDisplayStats);
- //获取每秒的帧
- floatgetSecondsPerFrame();
- //获取CCEGLView,当一切条件提供
- CCEGLView*getOpenGLView(//设置CCEGLView
- voidsetOpenGLView(CCEGLView*pobOpenGLView);
- //是否暂停
- boolisPaused(//Director开始后调用了多少帧
- unsignedintgetTotalFrames(//获取OpenGL的Projection
- ccDirectorProjectiongetProjection(//设置OpenGL的Projection
- voidsetProjection(ccDirectorProjectionkProjection);
- //设置OpenGL的Viewport
- voidsetViewport();
- //场景替换时是否接收到Cleanup事件
- //若新场景是push进来的,旧场景不会接收到Cleanup事件
- //若新场景是replace进来的,旧场景会接收到Cleanup事件
- boolisSendCleanupToScene(//获取OpenGLView的大小单位为点
- CCSizegetWinSize(//获取OpenGLView的大小单位为像素
- CCSizegetWinSizeInPixels(//获取OpenGLView显示区域大小单位为点
- //如果没调用CCEGLView::setDesignResolutionSize()则值和getWinSize相等
- CCSizegetVisibleSize();
- CCPointgetVisibleOrigin();
- //将UIKit坐标体系转换成OpenGL坐标体系
- CCPointconvertToGL(constCCPoint&obPoint);
- //将OpenGL坐标体系转换成UIKit坐标体系
- CCPointconvertToUI(constCCPoint&obPoint);
//运行场景只用在运行第一个场景
//调用pushScene之后调用startAnimation
- voidrunWithScene(CCScene*pScene);
- //push场景只用在有场景运行时替换成新的场景
- voidpushScene(CCScene*pScene);
- //pop场景换删除原来场景替换成新场景
- voidpopScene(?
//从queue中pop所以场景
- voidpopToRootScene(//替换场景只用在有场景运行时
- voidreplaceScene(CCScene*pScene);
- //暂停场景
- voidpause(//恢复暂停的场景
- voidresume(//停止动画
- voidstopAnimation(//开始动画
- voidstartAnimation(//渲染、绘制场景
- voiddrawScene(//删除缓存的数据
- voidpurgeCachedData(//设置OpenGL的默认值
- voidsetGLDefaultValues(//设置是否启动OpenGl的alpha通道
- voidsetAlphaBlending(boolbOn);
- //设置是否测试景深
- voidsetDepthTest(boolbOn);
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|