Cocos2D-iphone 情境切換

來源:互聯網
上載者:User
常用操作

1.運行第一個情境

我們一般是在應用程式代理程式AppDelegate的applicationDidFinishLaunching:方法結尾處運行遊戲的第一個情境

[java] view
plaincopy

  1. [[CCDirector sharedDirector] runWithScene: [HelloWorldLayer scene]];  

這裡的[HelloWorldLayer scene]返回的是一個CCScene對象

2.替換情境

[java] view
plaincopy

  1. [[CCDirector sharedDirector] replaceScene:scene];  

這個方法會用新的情境替換舊的情境,cocos2d會釋放舊情境的記憶體,刪除舊情境中所有的節點,停止所有動作和訊息調度,因此我們不用手動釋放舊情境的記憶體

3.推入和彈出情境

我們知道可以用replaceScene:來運行一個新情境,但是會釋放掉舊情境的記憶體。有時候我們希望在不釋放舊情境記憶體的前提下運行一個新情境,這時候就要用到CCDirector的pushScene:和popScene兩個方法了。

1> 使用pushScene:方法推入一個新情境,新情境會層疊在舊情境的上面,但並沒有釋放舊情境的記憶體,舊情境繼續保留在記憶體中

[java] view
plaincopy

  1. [[CCDirector sharedDirector] pushScene:scene];  


2> 使用popScene方法彈出最上層的情境並釋放其記憶體,使保留在記憶體中的舊情境重新顯示出來

[java] view
plaincopy

  1. [[CCDirector sharedDirector] popScene];  

CCTransitionScene

上面介紹了情境的切換,不過都是瞬間完成的,有時候我們想在情境切換的時候有些過渡效果,即以動畫的形式切換情境,我們稱之為"情境過渡"。要想做情境過渡效果,就必須用CCTransitionScene的子類,CCTransitionScene本身繼承了CCScene,它包含了非常多的子類,每個子類都有不同的情境過渡效果,比如CCTransitionFade是淡入淡出效果,CCTransitionPageTurn是翻頁效果。

下面示範一個翻頁效果:

[java] view
plaincopy

  1. CCTransitionPageTurn *page = [CCTransitionPageTurn transitionWithDuration:0.5 scene:scene];  
  2. [[CCDirector sharedDirector] replaceScene:page];  

意思是在0.5秒的時間內使用翻頁效果從舊情境過渡到scene這個新情境,因為CCTransitionScene是CCScene的子類,所以可以作為replaceScene:的參數。

cocos2d中有非常多的過渡效果可以使用,都是CCTransitionScene的子類,類名一般都是以CCTransition開頭的。我就不在這裡一一介紹每個子類有什麼效果,也沒有必要,用到時自己再去查API吧。

注意:CCTransitionScene只能使用在replaceScene:和pushScene:的時候,在popScene彈出情境時是不能用這個過渡效果的

節點的生命週期

說到情境過渡,那就不得不說一下節點的生命週期,即一個節點從開始被添加到螢幕上 到 從螢幕中移除的過程,CCNode提供了相應的生命週期方法:

[java] view
plaincopy

  1. // 節點被添加到螢幕上  或者 重新顯示到螢幕上 時調用  
  2. -(void) onEnter;  
  3.   
  4. // 調用完onEnter後就會調用此方法,如果使用了情境過渡效果,將在情境過渡完畢後才調用此方法  
  5. -(void) onEnterTransitionDidFinish;  
  6.   
  7. // 節點從螢幕中移除 或者 暫時離開螢幕 時調用  
  8. -(void) onExit;  
  9. //這個方法較少用
  10. -(void)onExitTransitionDidStart

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.