3.2 Director类
CCDirector类(简称为Director)是整个cocos2d游戏引擎的核心。如果回想一下在第2章中学到的HelloWorld程序,就会想起cocos2d中很多初始化过程都包含了[CCDirectorsharedDirector]这个调用。Director被设计为单件,这个设计是非常合理的:它存储了cocos2d中大量的全局配置信息,而且管理着所有的cocos2d场景。
Director的主要用途包括:
n● 切换场景
n● 存储cocos2d配置信息
n● 访问视图(OpenGL UIView UIWindow)
n● 暂停、恢复以及终止游戏
n● 在UIKit和OpenGL之间转换坐标
事实上,一共有4种Director可供选择,但它们之间只有细微的差别。最常用的一种是CCDisplayLinkDirector,它的内部采用苹果公司官方的CADisplayLink类来实现。这是一个很好的选择,但它只在iOS 3.1或更高的版本上可用。另一种选择是,可以使用CCFastDirector。如果想同时使用cocos2d和Cocoa Touch视图,就必须使用CCThreadedFastDirector,因为只有它可以同时支持cocos2d和Cocoa Touch视图。CCThreadedFastDirector的缺点在于耗电量比较大,如果你非常注重这一点,那么应选用CCTimerDirector。不过,不到万不得已,最好不要用它,因为它是所有Director中最慢的一个。
3.3 场景图
场景图有时也称为场景层次体系,是一个由所有处于活动状态的cocos2d节点构成的层次体系。除了场景以外,每个节点只有一个父节点,同时可以拥有任意个数的子节点。
当向节点添加节点时,就是在构建一个节点场景图。场景图的顶层通常是一个场景节点,接下来是一个层节点。层节点在cocos2d中负责接收触摸输入和加速计输入。