CCDirector,导演类,控制游戏流程,对游戏进行整体设置。
在游戏最后一个初始化方法applicationdidfinish里创建,ccd::shareDirector(),并对游戏进行设置,如设置游戏视图,设置游戏尺寸,深圳游戏最高帧率,运行游戏场景。作为一个全局性的控制对象,自然被设计单例模式,在游戏任何地方都可以通过ccd::shareDirector访问到。
CCD确实和导演的工作类似,它的几个方法 runscene:启动游戏,运行场景,一般游戏第一次启动时调用。
replacescene:用scene场景替换当前画面,并当前场景释放掉。
pushscene:将当前运行的场景暂停并压入待执行栈中,将scene设置为当前运行场景。
popscene:将当前场景释放并从待运行栈中取出最上面的场景设置运行场景。
注意:上面三个切换场景的方法均是将可切换的场景加载完毕后,再去释放当前运行的场景,这时候内存同时有两个场景,要注意内存不足的问题。
pause:暂停当前场景的所有计时器和动作,画面依然显示。
resume:开始当前场景的所有计数器和动作
end:结束场景同时推出游戏。
场景的两个功用:一是控制游戏流程,一是作为层的容器,功能简单的类。
使用场景一般集成场景,在子类的init方法做初始化操作。通过cctransitionscene可以增加场景之间切换的效果。
CCLayer,层。和场景一样,也是容器,但不同的是,它用于直接显示了。层里面可以添加精灵,文本标签或其他游戏元素。层组织好后就可以添加到场景中,通过下面几个方法
addChild(ccnode*node,int zorder,int tag)
其中zordrr代表层在场景中显示的顺序,值越大,层越靠上。tag层的标识,父类通过这个标识找到它。
层一个很重要的功能就是可以接受用户输入事件,包括出魔王,按键,加速器。
CCSprite是游戏中最重要的元素,代表了游戏中最小的可见单位。如果说场景,层代表了游戏中的宏观管理控制,那精灵则为微观世界提供了丰富的细节表现。
精灵通过文理创建,文理就是一张图片。在不加任何设置的情况下,精灵就是显示在屏幕上的图片。创建精灵三种方法:
1. 通过图片创建
create(char* pfilename,const CCRect &rect)
2. 通过纹理创建
create(CcTexture2d *texture,const CCRect &rect)
3. 通过精灵帧创建
create(CCSpriteFrame *frame)
CCNode定义了可绘制对象的通用属性,位置,大小,旋转,缩放等
执行动作
包含其他节点
接收各种事件与回调,如定时器