cocos2d-x提供了很多場景間切換的效果,可以方便大家使用
1.使用方法:
正常的無過渡場景的如果尚未建立場景(即遊戲中的第乙個場景),就是用pdirector->runwithscene(pscene);即可以使用相應場景,如果是替換場景,則使用ccdirector::shareddirector()->replacescene(this);替換相應的場景即可,而如果要使用場景間的切換效果來切換場景,則需要使用相應的切換方法即transitionwithduration(當然不同效果的使用方法略有不同)生成相應場景,然後再通過ccdirector::shareddirector()->replacescene(this)來啟動場景,也就是說這個給這個場景加了乙個外包裝,然後再啟動,那麼,這個場景就不是直接顯示了,而是在場景的效果使用完了以後進入場景,起到過渡的效果。
一般此函式有兩個引數,第乙個是特效的切換時間,直接生成乙個cctime即可,例子中設定的時間是1.2s,對於很多場景的顯示都很舒服,第二個是要進入的場景,有的會有第三個引數,會在下面介紹。
舉個例子,當我們需要變換為的scene為indexscene時:
cctime time = 1.2f;
ccscene *pscene = cctransitionslideinr::transitionwithduration(time, indexscene);//場景從右移入推出原場景
ccdirector::shareddirector()->replacescene(pscene);
2.test中的效果總結
cctransitionjumpzoom::transitionwithduration(t, s);//跳躍式,本場景先會縮小,然後跳躍進來
cctransitionfade::transitionwithduration(t, s);//淡出淡入,原場景淡出,新場景淡入
cctransitionfade::transitionwithduration(t, s, ccwhite);//如果上乙個的函式,帶3個引數,則第三個引數就是淡出淡入的顏色
cctransitionflipx::transitionwithduration(t, s, korientationleftover);//x軸左翻
cctransitionflipx::transitionwithduration(t, s, korientationrightover);//x軸右翻
cctransitionflipy::transitionwithduration(t, s, korientationupover);//y軸上翻
cctransitionflipy::transitionwithduration(t, s, korientationdownover);//y軸下翻
cctransitionflipangular::transitionwithduration(t, s, korientationleftover);//有角度轉的左翻
cctransitionflipangular::transitionwithduration(t, s, korientationrightover);//有角度轉的右翻
cctransitionzoomflipx::transitionwithduration(t, s, korientationleftover);//帶縮放效果x軸左翻
cctransitionzoomflipx::transitionwithduration(t, s, korientationrightover);//帶縮放效果x軸右翻
cctransitionzoomflipy::transitionwithduration(t, s, korientationupover);//帶縮放效果y軸上翻
cctransitionzoomflipy::transitionwithduration(t, s, korientationdownover);//帶縮放效果y軸下翻
cctransitionzoomflipangular::transitionwithduration(t, s, korientationleftover);//帶縮放效果/有角度轉的左翻
cctransitionzoomflipangular::transitionwithduration(t, s, korientationrightover);//帶縮放效果有角度轉的右翻
cctransitionshrinkgrow::transitionwithduration(t, s);//交錯換
cctransitionrotozoom::transitionwithduration(t, s);//轉角換
cctransitionmoveinl::transitionwithduration(t, s);//新場景從左移入覆蓋
cctransitionmoveinr::transitionwithduration(t, s);//新場景從右移入覆蓋
cctransitionmoveint::transitionwithduration(t, s);//新場景從上移入覆蓋
cctransitionmoveinb::transitionwithduration(t, s);//新場景從下移入覆蓋
cctransitionslideinl::transitionwithduration(t, s);//場景從左移入推出原場景
cctransitionslideinr::transitionwithduration(t, s);//場景從右移入推出原場景
cctransitionslideint::transitionwithduration(t, s);//場景從上移入推出原場景
cctransitionslideinb::transitionwithduration(t, s);//場景從下移入推出原場景
以下三個需要檢測opengl版本是否支援ccconfiguration::sharedconfiguration()->getglesversion() <= gles_ver_1_0如果為真則為不支援
cctransitioncrossfade::transitionwithduration(t,s);//淡出淡入交叉,同時進行
cctransitionradialccw::transitionwithduration(t,s);//順時針切入
cctransitionradialcw::transitionwithduration(t,s);//逆時針切入
以下兩個需要先設定攝像機,使用ccdirector::shareddirector()->setdepthtest(true);
cctransitionpageturn::transitionwithduration(t, s, false);//翻頁,前翻
cctransitionpageturn::transitionwithduration(t, s, true);//翻頁,後翻
cctransitionfadetr::transitionwithduration(t, s);//向右上波浪
cctransitionfadebl::transitionwithduration(t, s);//向左下波浪
cctransitionfadeup::transitionwithduration(t, s);//向上百葉窗
cctransitionfadedown::transitionwithduration(t, s);//向下百葉窗
cctransitionturnofftiles::transitionwithduration(t, s);//隨機小方塊
cctransitionsplitrows::transitionwithduration(t, s);//按行切
cctransitionsplitcols::transitionwithduration(t, s);//按列切
Cocos2d x之場景切換
在很多rpg遊戲中大部分存在多個場景,如開始的歡迎介面 選單介面 戰鬥介面 場景切換只需要呼叫ccdirector shareddirector replacescene s s為新的場景,這句 的是含意,是用新的場景s去替換掉舊的場景,但是這樣的場景替換,來得太突然,給使用者的感覺不太好,我們需要...
cocos2dx切換場景
分享一下cocos2dx切換場景函式 場景a切換到場景b,有切換特效 呼叫順序如下 aaabababa a 建構函式 a onenter a onentertransitiondidfinish b 建構函式 a onexittransitiondidstart b onenter a onexit...
COCOS2DX 場景與層
runscene scene 啟動第乙個場景時使用 popscene 與pushscene配合使用,可以回到上乙個場景 poptorootscene 與pushscene配合使用,可以回到根場景 2.場景過渡動畫 由transitionsecene和它的子類展示 3.場景的生命週期函式 ctor建構...