cocos2d x學習之場景間切換效果

2021-06-08 22:51:15 字數 3790 閱讀 3604

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建構...