小滿(bill man)個人原創,歡迎轉載,轉載請注明地址,小滿(bill man)的專欄地址http://blog.csdn.net/bill_man
Cocos2d-x提供了很多場景間切換的效果,可以方便大家使用(很多是在Kjava時代都需要程序員自己來實現的效果)。
1.使用方法:
正常的無過渡場景的如果尚未建立場景(即游戲中的第一個場景),就是用pDirector->runWithScene(pScene);即可以使用相應場景,如果是替換場景,則使用CCDirector::sharedDirector()->replaceScene(this);替換相應的場景即可,而如果要使用場景間的切換效果來切換場景,則需要使用相應的切換方法即transitionWithDuration(當然不同效果的使用方法略有不同)生成相應場景,然后再通過CCDirector::sharedDirector()->replaceScene(this)來啟動場景,也就是說這個給這個場景加了一個外包裝,然后再啟動,那么,這個場景就不是直接顯示了,而是在場景的效果使用完了以后進入場景,起到過渡的效果。
一般此函數有兩個參數,第一個是特效的切換時間,直接生成一個CCTime即可,例子中設定的時間是1.2s,對于很多場景的顯示都很舒服,第二個是要進入的場景,有的會有第三個參數,會在下面介紹
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);//按列切
~~~
剛開始研究此引擎,如有錯誤之處,希望大家多多指正
下一篇寫一下test類里面的其他場景
- 前言
- (1)--HelloWorld
- (2)--重要概念及Test例子結構
- (3)--動作(CCAction)
- (4)--觸屏事件
- (5)--動作管理
- (6)--場景間切換效果
- (7)--CCProgressTimer
- (8)--場景特效
- (9)--粒子系統
- (10)--運動中的加速度效果
- (11)--拖動間隱效果
- (12)--圖形繪制
- (13)--內存回收機制
- (14)--菜單項
- (15)--CCOrbitCamera
- (16)--LayerColor
- (17)--瓦片地圖集
- (18)--Lable
- (19)--物理引擎box2d(1)
- (20)--物理引擎box2d(2)
- (21)--精靈類
- (22)--動畫類
- (23)--其他(屏幕旋轉,schedule,系統語言)
- (24)--音樂音效
- (25)--CCRenderTexture
- (26)--其他(游戲存檔,切換高清,圖片處理)
- (27)--CCMutableArray
- (28)--CCTMXTiledMap
- (29)-cocosBuilder
- (30)2.1新特性之CCClippingNode
- (31)2.1新特性CCPhysicsSprite
- (32)-cocos2d-x &amp; javascript跨平臺初體驗