【cocos2dx】CCFadeInとCCFadeOutの使い方

cocos2dxを使って結構時間が経つのですが、今さらながらCCActionクラスのCCFadeInとCCFadeOutが思うように動かせるようになりました。 今回は、このCCFadeInとCCFadeOutの使い方を紹介します。

CCFadeInとCCFadeOutとは

CCFadeIn」「CCFadeOut」クラスを利用すれば、スプライトを透明にしたり、また透明から姿を表したりすることができます。 [c]

CCFadeIn *fadein = CCFadeIn::create(1.0f); this->runAction(fadein);

CCFadeOut *fadeout = CCFadeOut::create(1.0f); this->runAction(fadeout);

[/c]

このような感じに表現ができます。

2014 3 28 00da

透明->表示

ここからは、私の不勉強なのですが、いままで「透明のスプライトを表示させる」時には、対象のスプライトをsetVisible()を使っていました。 [c]

sprite -> setVisible(false);

〜〜〜〜〜〜〜〜〜〜〜〜

sprite -> setVisible(true); CCFadeIn *fadein = CCFadeIn::create(1.0f); sprite->runAction(fadein);

[/c]

このようにすると、CCFadeInを実行する際に一瞬だけスプライトが写ってしまいます。

正しい方法

実は「CCFadeIn」「CCFadeOut」は、opacityを調整して透明になっているのです。 これを最近知りました。

ですので、使うのはsetVisible()ではなくて、setOpacity()です。 [c]

sprite->setOpacity(0);

〜〜〜〜〜〜〜〜〜〜〜〜

CCFadeIn *fadein = CCFadeIn::create(1.0f); sprite->runAction(fadein);

[/c]

このようにすれば上手くいきます。

注意点

setOpacity()を使う注意点は、対象の子クラスに対しては透過効果が適応されないことです。 ですので個別に設定をする必要があります。