想請問各位大大,關於場景切換時的過場效果。

通常在Cocos2dx 場景切換,不外乎就兩個方式replaceScene、pushScene(還是還有別的?)

那小弟想請問,如果我現在要從A場景Push到B場景,在中間過程想要有一個像是過場Loading的效果。該怎麼實現呢?

我看很多遊戲在場景切換時,都會有一個統一的切換動畫(有可能是會跳出一個人物在跳~或是會有一個布幕蓋起來,再打開之類的)

由於通常在切換場景時,有可能需要去loading一些資源,這時就會需要再轉場時跳出進度讀取條之類的需求。

這種東西具體實現的思路是什麼呢?

感謝各位大大。

小弟目前採用cocos2dx 3.3 與 lua 5.1 開發。

我想到两种方法:
1.loading界面本身就是一个场景,每次切换场景都先切换到loading这个场景,然后加载完成后,事件触发自动切换到想要的场景.

2.继承Scene自己写一个场景类,场景类保护loading这个Layer,每次切换先展示Loading层,加载完成再移除这个层,展示完成后的场景.

感謝大大,目前您想到的方法我也有想到過。

只是由於小弟第一次做遊戲,不知道有沒有所謂比較正規的做法?

還是只要能實現,就都是好作法呢XD

話說第一種做法,一個場景的初始化,都會跑他的生命週期。那這樣做的話,就是要等到Loading Scene 完成後到我要的Scene時,這時我要的Scene生命週期才會被觸發。

我在想的是,是不是這種過場動畫其實用第二種做法,在每個Scene初始化時或是OnEnter時就給它弄上客製化的Layer,等到完成Loading時在把它移除。這樣在生命週期上好像比較順。(移除時整個Scene也已經onEnterTransitionFinish)

只是這邊又衍生另一個問題,我們要把一個Layer家在Scene的最上層不外乎都是使用
cc.Director:getInstance():getRunningScene():addChild(Layer, 50)這個方法把Layer加到整個場景的最上層。

不過似乎可能這樣做就要很小心,以防在Loading的過程中不能有一些提示訊息跳出(也同樣是加到RunningScene的提示框),要不然好像就破功了。

那順便再問一個問題,Cocos最高的畫面層就是RunnungScene了嗎?還是還有導演級別的層可以使用的呢?

感謝大大解答