個人的なメモ

Tomohiro Suzuki @hiro128_777 のブログです。Microsoft MVP for Developer Technologies 2017- 本ブログと所属組織の公式見解は関係ございません。

Cocos Sharp での基本的なゲームの制御の方法(5) フェードイン、フェードアウト。

今回はフェードイン、フェードアウトする方法についてご説明します。
フェードイン、フェードアウトすること自体は非常に簡単ですが、それぞれ1つずつ注意点があります。

フェードイン、フェードアウトには以下のクラスを使用します。

public CCFadeIn(float durataion);
public CCFadeOut(float durtaion);

それぞれの使用方法ですが、

フェードインを実行する。

public CCFadeIn(float durataion);

durataion で指定された所要時間でフェードインします。

注意点:CCFadeIn を実行する前に CCNodeOpacity を 0 に設定しないと、今からフェードインする CCNode が画面上に表示されてしまいます。
CCFadeInCCNodeOpacitydurataion で指定された所要時間で 0 から 255 にリニアに変化させるためです。

(例)スプライトを3秒の所要時間でフェードイン

var sprite = new CCSprite("Image.png", null);
//  Opacity を 0 に設定するのを忘れずに!
sprite.Opacity = 0;
this.AddChild(sprite);

// 3秒の所要時間でフェードイン
var fadeIn = new CCFadeIn(3f);
sprite.RunAction(fadeIn);

フェードアウトを実行する。

public CCFadeOut(float durtaion);

durataion で指定された所要時間でフェードアウトします。

注意点:CCFadeOut で画面上から見えなくなっても、Opacity = 0 で画面上にオブジェクトは残ったままですので、きちんと Remove する必要があります。


(例)スプライトを3秒の所要時間でフェードアウトし、2秒待って、スプライトを消去する

var sprite = new CCSprite("Image.png", null);

var fadeOut = new CCFadeOut(3f);
var delayTime = new CCDelayTime(2f);
var removeSelf = new CCRemoveSelf(true);

// 逐次実行アクション作成
var sequence = new CCSequence(fadeOut, delayTime, removeSelf);

sprite.RunAction(sequence);

というわけで、今回はここまでです。