CCDirector导演类学习
CCDirector主要功能:
●访问和改变场景。
●访问x引擎的配置参数,如获取当前窗体的大小。
●访问各种视图,比如:OpenGL视图、Windows窗体视图、iOS平台的UIView视图等。
●控制游戏的暂停、恢复和结束整个游戏进程。
●在窗体视图和OpenGL之间的转换坐标。
●解决x引擎的刷新频率,也就是帧率FPS。
CCDirector采用的是单例模式获取:
CCDirector * pDirector = CCDirector::sharedDirector();
CCDirector需要绑定一个OpenGL视图,将导演类所管理的场景绘制到绑定的OpenGL视图上。x引擎提供了CCEGLView,同样采用了单例模式。先拿到一个CCEGLView,然后将导演类和CCEGLView绑定。
CCEGLView *pView = CCEGLView::sharedOpenGLView();
pDirector->setOpenGLView(pView);
FPS:Frame Per Second缩写,意为每秒钟的帧率。这个值应当稳定在60,不然人眼会觉得卡顿。
开启FPS显示功能
pDirector->setDisplayStats(true);
设置帧率
pDirector->setAnimationInterval(1.0/60);
获取屏幕大小
CCSize size = pDirector->getWinSize();
运行效果:
x引擎的坐标系统
●窗体屏幕坐标系:原点在窗体左上角,x轴向右,y轴向下。
●OpenGL坐标系:原点在窗体左下角,x轴向右,y轴向上。
●本地坐标系:游戏中每个对象独立的坐标系。本地坐标系都是用于计算和控制对象位置的。相对位于本地坐标系的子对象,本地坐标系的原点在左下角,x轴向右,y轴向上。
●世界坐标系:世界坐标系就是所谓的绝对坐标,所有的对象虽然都有自己的本地坐标系,但这些对象同样的在世界坐标系中也有一个坐标。世界坐标系的原点需要我们人为来定义,通常都是使用OpenGL坐标系的原点,x轴向右,y轴向上。
// 暂停游戏
CCDirector::sharedDirector()->pause();
// 恢复游戏
CCDirector::sharedDirector()->resume;
// 结束游戏
CCDirector::sharedDirector()->end();