歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

cocos2d使用半單例

cocos2d: 使用半單例

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

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

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

Copyright © Linux教程網 All Rights Reserved