【cocos2dx】CCFadeInとCCFadeOutの使い方

【cocos2dx】CCFadeInとCCFadeOutの使い方
   

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

CCFadeInとCCFadeOutとは

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

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


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


このような感じに表現ができます。
2014 3 28 00da


透明->表示

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

sprite -> setVisible(false);


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

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


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

正しい方法

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

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

sprite->setOpacity(0);

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

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



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

注意点

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

Related Posts Plugin for WordPress, Blogger...