Cocos2d-iPhone V3 (2) 場景轉換
- 博客:http://blog.csdn.net/prevention
- 作者:大銳哥
-
1. 準備工作
創建一個場景會吧?
#import "cocos2d.h"
#import "cocos2d-ui.h"
@interface MainScene : CCScene
+ (MainScene *)scene;
- (id)init;
@end
基本的方法都得實現,scene
、init
、onEnter
、onExit
和touchBegan
。不會的話先看看 Cocos2d-iPhone
V3 (1) 基本程序框架以及常用動作介紹 這篇。
好了,現在假設你已經創建了兩個自定義場景類MainScene
和HomeScene
。
2. 轉場!
從MainScene
轉換到HomeScene
,在MainScene
的某處代碼中調用:
CCTransition *t = [CCTransition transitionPushWithDirection:CCTransitionDirectionRight
duration:1.0f]
[CCDirector sharedDirector] replaceScene:[HomeScene scene] withTransition:t];
創建一個CCTransition
,然後讓導演來 hold 住全場,用CCTransition
來轉場到HomeScene
,使用的函數是:
- (void)replaceScene:(CCScene *)scene withTransition:(CCTransition *)transition;
你要有一種電影導演的感覺。這裏提一下轉場四要素:
- 舊場景
- 新場景
- 轉場方式:可能涉及轉場方向等參數
- 轉場時間
3. 常用轉場方式
上面用到的是push
,具體是新場景從右側向左移入(推動舊場景也向左移)。六種轉場方法如下:
// 注意:下面的寫法是不正式的,只是爲了簡短明瞭
// cross fade
transitionCrossFadeWithDuration:(NSTimeInterval)
// fade with color
transitionFadeWithColor:(CCColor*) duration:(NSTimeInterval)
// fade
transitionFadeWithDuration:(NSTimeInterval)
// move in
transitionMoveInWithDirection:(CCTransitionDirection) duration:(NSTimeInterval)
// push
transitionPushWithDirection:(CCTransitionDirection) duration:(NSTimeInterval)
// reveal
transitionRevealWithDirection:(CCTransitionDirection) duration:(NSTimeInterval)
- cross fade 轉場就是舊場景 alpha 值從 1 變爲 0,新場景的 alpha 值從 0 變爲 1,兩個 cross 在一起。
- fade with color 轉場就是在舊場景與新場景之間加一個顏色場景,先從舊場景 cross fade 到這個顏色場景,再從顏色場景 cross fade 到新場景。
- fade 就是 fade with color 的一個特殊情況,即顏色場景爲黑色的情況。
- move in 轉場是指新場景 move in,即新場景像一個蓋子一樣挪過來蓋在舊場景上面。
- push 轉場是新場景把舊場景推走,兩個場景平行移動。
- reveal 轉場就是舊場景蓋在新場景下面,然後像揭蓋子一樣把舊的揭掉,新的就露出來了。與 move in 相反,一個是新場景蓋過來,一個是老場景揭出去。
其實你 coding 一下試試就知道了,把 duration 設置長一點來觀察。
-
轉載請註明來自:http://blog.csdn.net/prevention