写游戏经常要进行场景之间的转换,但是如果要转换的场景要加载很多资源时会让游戏处于完全静止的状态,就像卡住了似的,让人玩着非常的不爽,解决此问题只需给界面上加上旋转的小菊花就可以了!

  1. {........ 
  2.     extern UIActivityIndicatorView *activetyview;//小菊花其实是个视图 
  3.     activetyview = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 
  4.     activetyview.center = ccp(265 , 250);//原坐标为左上角 
  5.     [[[CCDirector sharedDirector] openGLView] addSubview:activetyview]; 
  6.     [activetyview startAnimating];//小菊花开始旋转 
  7.     [self scheduleOnce:@selector(replace) delay:0.0f]; 
  8. ........} 
  9.  
  10. -(void)replace{    
  11.     [[CCDirector sharedDirector] replaceScene:[GameLayer scene]]; 

让小菊花加载上之后不能立马写场景转换的代码,如果这样的话你运行工程会发现小菊花没有出现,但是场景转换完之后小菊花出现了,所以要用scheduleOnce延时0s执行场景转换的代码就好了!

还 有看到第一行代码我用了extern,引用了外部变量,没错,小菊花要定义成外部变量,因为你加载的小菊花是一个view,不属于某一个场景,不是说加载 到此场景上,当此场景被转换的时候小菊花也消失,不是!小菊花始终还在,所以要在第二个场景的初始化init方法中加入一下代码:

  1. extern UIActivityIndicatorView *activetyview; 
  2.  
  3. [activetyview stopAnimating];//让小菊花消失!