歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> cocos2d使用半單例

cocos2d使用半單例

日期:2017/3/1 10:13:16   编辑:Linux編程

cocos2d: 使用半單例

把MultiLayerScene設置成半單例,目的是讓別的對象可以直接訪問MultiLayerScene

  1. static MultiLayerScene* multiLayerSceneInstance;
  2. +(MultiLayerScene*) sharedLayer
  3. {
  4. NSAssert(multiLayerSceneInstance != nil, @"MultiLayerScene not available!");
  5. return multiLayerSceneInstance;
  6. }
  7. //初始化MultiLayerScene
  8. -(id) init
  9. {
  10. if ((self = [super init]))
  11. {
  12. multiLayerSceneInstance = self;
  13. // GameLayer層
  14. GameLayer* gameLayer = [GameLayer node];
  15. [self addChild:gameLayer z:1 tag:LayerTagGameLayer];
  16. }
  17. return self;
  18. }
  19. -(void) action1
  20. {
  21. // do something
  22. }
  23. -(void) dealloc
  24. {
  25. multiLayerSceneInstance = nil;
  26. // don't forget to call "super dealloc"
  27. [super dealloc];
  28. }
訪問半單例方法,如在GameLayer層中可以這樣訪問MultiLayerScene中的action1方法:
  1. [[MultiSceneLayer shareLayer] action1];

半單例與普通的單例類不同,任何時候只存在一個MultiLayerScene的實例,它不能被用來初始化MultiLayerScene。

Copyright © Linux教程網 All Rights Reserved