1. 程式人生 > >SpriteBuilder&Cocos2D使用CCEffect特效實現天黑天亮過度效果

SpriteBuilder&Cocos2D使用CCEffect特效實現天黑天亮過度效果

繪圖 script rip each got selector sel 謝謝 fec

大熊貓豬·侯佩原創或翻譯作品.歡迎轉載,轉載請註明出處.
假設認為寫的不好請多提意見,假設認為不錯請多多支持點贊.謝謝! hopy ;)


在動作或RPG類遊戲中我們有時須要天黑和天亮過度的效果來完畢場景的過度,有非常多種方法比方用場景切換的過渡類來實現.可是在這裏我們使用另外的方法:CCEffect特效節點來實現.

打開SpriteBuilder,在CCB場景中加入一個CCEffectNode節點,按例如以下設置:

技術分享

註意上圖有2個Brightness效果,實際僅僅用一個,還有一個是做其它測試用的.

打開Xcode加入過渡代碼:

-(void)darkFadeOut:
(CCTime)delta{ CCEffectStack *effectStack = (CCEffectStack*)_effectNode.effect; CCEffectBrightness *effectBrightness = (CCEffectBrightness*)[effectStack effectAtIndex:0]; if (effectBrightness.brightness <= -1) { [self unschedule:_cmd]; if (_mapNameWaitingGoTo) { if
(CGPointEqualToPoint(_spawnTilePos, ccp(-1, -1))) { [self GoToMapNamed:_mapNameWaitingGoTo]; }else{ [self GoToMapNamed:_mapNameWaitingGoTo spawnAtTilePos:_spawnTilePos]; } [self schedule:@selector(darkFadeIn:) interval:0.2]; } }else
{ if (effectBrightness.brightness - 0.1 <= -1.0f) { effectBrightness.brightness = -1.0f; }else{ effectBrightness.brightness -= 0.1; } } }

還有還有一個相應方法:darkFadeIn與此相似,僅僅只是屬性是反轉的效果.

編譯鏈接,執行效果例如以下(動繪圖片比較大,可能要等一會):

技術分享

SpriteBuilder&amp;Cocos2D使用CCEffect特效實現天黑天亮過度效果