Cocos2d-iPhone V3 (2) 場景轉換

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

基本的方法都得實現,sceneinitonEnteronExittouchBegan。不會的話先看看 Cocos2d-iPhone V3 (1) 基本程序框架以及常用動作介紹 這篇。

好了,現在假設你已經創建了兩個自定義場景類MainSceneHomeScene

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;

你要有一種電影導演的感覺。這裏提一下轉場四要素:

  1. 舊場景
  2. 新場景
  3. 轉場方式:可能涉及轉場方向等參數
  4. 轉場時間

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

發佈了153 篇原創文章 · 獲贊 3 · 訪問量 48萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章