SpriteBuilder&Cocos2D使用CCEffect特效實現天黑天亮過度效果
阿新 • • 發佈:2017-07-08
繪圖 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&Cocos2D使用CCEffect特效實現天黑天亮過度效果