cocos2的很好的利用了单例设计模式。单例模式:在程序生命中期里只被实例化一次的类。为了确保这一点,我们用类的一个静态方法来生成和访问对象。
因此,是通过sharede开头的方法来访问cocos2d的单例对象的。
一些常用到的cocos2d的单例类和访问他们的方法:
CCActionManager *sharedManager = [CCActionManager sharedManager];
CCDirectror *sharedDirector = [CCDirector sharedDirector];
CCSpriteFrameCache *sharedCache = [CCSpriteFrameCache sharedSpriteFrameCache];
CCTouchDispatcher *sharedDispatcher = [CCTouchDispatcher sharedDispatcher];
CDAudioManager *sharedManager = [CDAudioManager sharedManager];
SimpleAudioEngine *sharedEngine = [SimpleAudioEngine sharedEngine];
单例的好处是它可以在任何时间,任何地点被任何类所调用。接近于全局类的作用,像一个全局变量。如果需要在任何地方都能用到某些数据或者方法,单例是最好的方法。
例子:音频,任何一个类,不管是玩家还是敌人,菜单按钮,或者过场动画,都需要播放音乐,在这个时候使用单例,可以减少很多麻烦。另一个例子就是需要保存全局的游戏状态,比如说玩家军队的大小和每只部队排的数目,你可以把这些信息存到一个单例中,把这些信息从一个关卡,传到另一个关卡。