CCDirector类详解

转自: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类中主要方法解释

  1. //获取当前的CCDirector唯一实例  
  2. CCDirector* sharedDirector(void);  
  1. //获取当前运行的场景  
  2. CCScene* getRunningScene(void);  
  3.   
  4. //获取FPS(Frames Per Second)值  
  5. double getAnimationInterval(void);      
  6. //设置FPS值  
  7. void setAnimationInterval(double dValue);  
  8.   
  9. //是否在屏幕底部显示FPS  
  10. bool isDisplayStats(void);  
  11. //设置在屏幕底部显示FPS  
  12. void setDisplayStats(bool bDisplayStats);   
  13.      
  14. //获取每秒的帧  
  15. float getSecondsPerFrame();  
  16.   
  17. //获取CCEGLView,当一切条件提供  
  18. CCEGLView* getOpenGLView(void);  
  19. //设置CCEGLView  
  20. void setOpenGLView(CCEGLView *pobOpenGLView);  
  21.   
  22. //是否暂停  
  23. bool isPaused(void);  
  24.   
  25. //Director开始后调用了多少帧  
  26. unsigned int getTotalFrames(void);  
  27.       
  28. //获取OpenGL的Projection  
  29. ccDirectorProjection getProjection(void);    
  30. //设置OpenGL的Projection    
  31. void setProjection(ccDirectorProjection kProjection);  
  32.       
  33. //设置OpenGL的Viewport  
  34. void setViewport();  
  35.       
  36.       
  37. //场景替换时是否接收到Cleanup事件  
  38. //若新场景是push进来的,旧场景不会接收到Cleanup事件  
  39. //若新场景是replace进来的,旧场景会接收到Cleanup事件  
  40. bool isSendCleanupToScene(void);  
  41.   
  42. //获取OpenGL View的大小 单位为点  
  43. CCSize getWinSize(void);  
  44.   
  45. //获取OpenGL View的大小 单位为像素  
  46. CCSize getWinSizeInPixels(void);  
  47.   
  48. //获取OpenGL View显示区域大小 单位为点  
  49. //如果没调用CCEGLView::setDesignResolutionSize()则值和getWinSize相等  
  50. CCSize getVisibleSize();  
  51.       
  52. //获取OpenGL View显示区域大小 单位为点  
  53. CCPoint getVisibleOrigin();  
  54.   
  55. //将UIKit坐标体系转换成OpenGL坐标体系  
  56. CCPoint convertToGL(const CCPoint& obPoint);  
  57.   
  58. //将OpenGL坐标体系转换成UIKit坐标体系  
  59. CCPoint convertToUI(const CCPoint& obPoint);  
  1.    
  1. //运行场景 只用在运行第一个场景  
  1. //调用pushScene之后调用startAnimation  
  2. void runWithScene(CCScene *pScene);  
  3.   
  4. //push场景 只用在有场景运行时替换成新的场景  
  5. void pushScene(CCScene *pScene);  
  6.   
  7. //pop场景 换删除原来场景 替换成新场景  
  8. void popScene(void);  
  1. //从queue中pop所以场景  
  2. void popToRootScene(void);  
  3.   
  4. //替换场景 只用在有场景运行时  
  5. void replaceScene(CCScene *pScene);  
  6.   
  7. //暂停场景  
  8. void pause(void);  
  9.   
  10. //恢复暂停的场景  
  11. void resume(void);  
  12.   
  13. //停止动画  
  14. void stopAnimation(void);  
  15.   
  16. //开始动画  
  17. void startAnimation(void);  
  18.   
  19. //渲染、绘制场景  
  20. void drawScene(void);  
  21.   
  22. //删除缓存的数据  
  23. void purgeCachedData(void);  
  24.   
  25. //设置OpenGL的默认值  
  26. void setGLDefaultValues(void);  
  27.   
  28. //设置是否启动OpenGl的alpha通道  
  29. void setAlphaBlending(bool bOn);  
  30.   
  31. //设置是否测试景深  
  32. void setDepthTest(bool bOn);  
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值