CCDiretor如其名,导演统筹和协调游戏各项动作。
游戏引擎只需要拥有一个导演类,所以CCDiretor是单例模式。
调用并获得CCDiretor的方法:
CCDiretor.shareDirector();
它只支持1/60 1/30 1/15 3种动画帧间隔 ,设置帧间隔方法:
CCDirector.sharedDirector().setAnimationInterval(1.0f / 30);
函数名 | 返回类型 | 描述 |
getRunningScene | 场景类 | 获得当前正在运行的场景 |
getAnimationInterval | 小数 | 获得每帧的时间 |
setAnimationInterval | 空 | 设置每帧的时间 |
isDisplayStats | 布尔型 | 返回是否在屏幕左下角显示每帧 |
setDisplayStats | 空 | 设置是否在屏幕左下角显示每帧 |
getSecondsPerFrame | 浮点值 | 获得每帧的时间(单位秒) |
getOpenGLView | OpenGL视图 | 获得所有对象绘制OpenGL视图 |
setOpenGLView | 空 | 设置所有对象的OpenGL视图 |
isPaused | 布尔值 | 获得导演对象是否暂停 |
getTotalFrames | 整型 | 获得从导演类开始运行的帧数 |
getProjection | 导演投影 | 获得OpenGL的投影 |
setProjection | 空 | 设置的OpenGl的投影 |
getNotificationNode | 节点 | 获得一个节点对象,这个节点对象在主 场景被遍历后遍历 |
enableRetinaDisplay | 布尔型 | 是否是视网膜版的显示 |
getWinSize | 尺寸 | 获得屏幕大小(单位为点) |
getWinSizeInPixels | 尺寸 | 获得像素级的屏幕大小,单位为像素,只是视网 膜版本上一个不同的返回值 |
reshapeProjection | 空 | 改变投影的大小 |
converToGL | 点坐标 | 从UI体系的坐标转换为OpenGL的坐标 |
converToUI | 点坐标 | 从OpenGL的坐标转换为UI体系的坐标 |
runWithScene | 空 | 运行当前场景 |
popScene | 空 | 弹出当前的场景,将它从栈顶弹出 |
pushScene | 空 | 悬挂当前场景,压入栈中 |
popToROOToScene | 空 | 弹出所有场景,直到根场景 |
replaceScene | 空 | 替换当前场景 |
end | 空 | 结束游戏 |
pause | 空 | 暂停游戏 |
resume | 空 | 重启被暂停的场景,被暂停的时间调度也 重新激活 |
stopAnimation | 空 | 停止动画 |
startAnimation | 空 | 开始动画 |
drawScene | 空 | 绘制场景 |
purgeCacheData | 空 | 清除缓存数据 |
setGLDefaultValues | 空 | 将OpenGL参数设置为默认值 |
setAlphaBlending | 空 | 设置OpenGL是否采用Alpha值 |
setDepthTest | 空 | 设置是否测试景深 |
getTouchDispatcher | 触屏调度 | 获得触屏调度对象 |
setTouchDispather | 空 | 设置触屏调度对象 |
getKeypadDispather | 键盘调度 | 获得键盘调度对象 |
setKeypadDispather | 空 | 设置键盘调度对象 |
getAccelerometer | 加速度传感器 | 获得加速器传感器 |
setAccleerometer | 空 | 设置加速器传感器 |
getActionManager | 动作管理 | 获得动作管理器对象 |
setActionManager | 空 | 设置动作管理器对象 |
getScheduler | 调度 | 获得调度对象 |
setSchduler | 空 | 设置调度对象 |
Cocos2D-Android1 代码示例:
public class Main extends Activity {
/** Called when the activity is first created. */
private CCGLSurfaceView view;
private CCDirector director;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
view=new CCGLSurfaceView(this);
director=CCDirector.sharedDirector();
director.attachInView(view);
director.setDisplayFPS(true);
// attach the OpenGL view to a window
// set landscape mode
CCDirector.sharedDirector().setLandscape(false);
// show FPS
CCDirector.sharedDirector().setDisplayFPS(true);
// frames per second
CCDirector.sharedDirector().setAnimationInterval(1.0f / 30);
// Make the Scene active
CCScene scene=CCScene.node();
CCDirector.sharedDirector().runWithScene(scene);
setContentView(view);
}
}