oDustGgg個人原創、歡迎轉載、轉載請註明出處、http://blog.csdn.net/odustggg/article/details/8197289
一、轉場效果簡介
cocos2d_x提供了大量的情境轉場效果、你無需自己再去實現、基本已經能滿足日常開發的要求了、
遊戲中的第一個情境、使用pDirector:runWithScene(Scene)即可以出現相應情境、
如要切換情境、則使用CCDirector:sharedDirector():replaceScene(Scene)就可替換為新情境、
如要實現不太單調的轉場效果則需要實現相應的切換的方法產生相應情境
然後再通過CCDirector:sharedDirector():replaceScene(Scene)來啟動情境、情境過渡不會太難看
二、提供效果
--原情境先縮小跳躍出、新情境跳躍進CCTransitionJumpZoom:transitionWithDuration(t, s)--原情境淡出、新情境淡入、第三參數為淡出淡入顏色、省去的時候預設為黑色CCTransitionFade:transitionWithDuration(t, s, ccWHITE)--淡出淡入交叉、同時進行CCTransitionCrossFade: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)--波浪、百葉窗、隨機小方塊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)--順時逆時切入CCTransitionRadialCCW:transitionWithDuration(t,s)CCTransitionRadialCW:transitionWithDuration(t,s)--分別是x軸左右翻和y軸上下翻、參數分別是0和1、感覺翻的效果都不太好--在c++項目中測試沒問題、lua中這幾個有帶翻效果的函數都會出現花屏現象、原因未知--有知道的同學請留言告知、不甚感激CCTransitionFlipX:transitionWithDuration(t, s, 0)CCTransitionFlipY:transitionWithDuration(t, s, 0)--有角度轉的翻CCTransitionFlipAngular:transitionWithDuration(t, s, 0)--帶縮放效果x軸翻CCTransitionZoomFlipX:transitionWithDuration(t, s, 0)--帶縮放效果y軸翻CCTransitionZoomFlipY:transitionWithDuration(t, s, 0)--帶縮放效果/有角度轉的翻CCTransitionZoomFlipAngular:transitionWithDuration(t, s, 0)--交錯換 原情境逐漸層小 新情境逐漸層大CCTransitionShrinkGrow:transitionWithDuration(t, s);--轉角換 換角度CCTransitionRotoZoom:transitionWithDuration(t, s);--前後翻頁、個人感覺效果不佳CCTransitionPageTurn:transitionWithDuration(t, s, false)CCTransitionPageTurn:transitionWithDuration(t, s, true)
具體效果大家還是看引擎中的tests吧
三、使用方法
runningScene = CCDirector:sharedDirector():getRunningScene() local trans = CCTransitionFade:transitionWithDuration(1.5,nextScene)if runningScene == nil then CCDirector:sharedDirector():runWithScene( trans ) else CCDirector:sharedDirector():replaceScene( trans ) end