「魔法少女戦記外伝」DL委託販売中!!
○DMM 同人様○ | ○Melonbooks DL 様○ | ○DLsite.com 様○ |
---|
最新記事ほか
2014.04.30 (水)
【cocos2d-x】CCLayeクラスのフェードイン&アウト
cocos2d-xを使っていたときに困った話。
ゲームに限らず演出で何かとお世話になることが多いフェードイン&アウト処理なんですが、cocos2d-xでは以下のような書式で実現させるのが常套手段ということが調べてわかりました。
じゃあ早速こいつを使ってレイヤーも・・・という予定だったんですが、ところがギッチョン!というのが今回のお話です。
・・・で、早速スプライトやら何やらを積み込んだ CCLaye クラスに適用しようとしたところ、以下のようなビルドエラーが発生します。
全体の透明度を指定する setOpacity() 関数がないということなので、じゃあ setOpacity() 関数をコメントアウトしてこんな感じでどうですか?・・・と
これでビルドはできるようになるんですが、実際に実行してもフェードインが発生しません。
じゃあどうしよう?と調べて見ると以下のサイト様にて、良い記事がありました。
[cocos2d-x] CCLayerのFadeIn/FadeOutとか (Cocoamix.jp様)
やはり同じようなことを考えていた人がいたらしく、早速試してみたのが以下のソースです。
(実装内容は最小限です。他の機能を使うときは自前で盛り込んでください)
そんでもってこのクラスを使用して、元のコードをこんな感じで書き換えると・・・
やっとこさうまくいきました。
いくら CCLayer がフェードイン&アウトに対応していないからって、中にあるスプライトやらフォントやらに1つずつフェードイン&アウト設定は書きたくないですもんねw
というわけで、自分自身の備忘録を兼ねた小ネタ記事でした。
Cocoamix.jp様には大変お世話になりました、ありがとうございます。
でわでわ~ノシ
ゲームに限らず演出で何かとお世話になることが多いフェードイン&アウト処理なんですが、cocos2d-xでは以下のような書式で実現させるのが常套手段ということが調べてわかりました。
CCSprite* pSprite = CCSprite::create();
this->addChild(pSprite);
// 最初は透明にする
pSprite->setOpacity(0);
// 0.5秒でフェードイン
CCFadeIn* fadein = CCFadeIn::create(0.5);
pSprite->runAction(fadein);
じゃあ早速こいつを使ってレイヤーも・・・という予定だったんですが、ところがギッチョン!というのが今回のお話です。
・・・で、早速スプライトやら何やらを積み込んだ CCLaye クラスに適用しようとしたところ、以下のようなビルドエラーが発生します。
error: 'class CCLaye' has no member named 'setOpacity'
全体の透明度を指定する setOpacity() 関数がないということなので、じゃあ setOpacity() 関数をコメントアウトしてこんな感じでどうですか?・・・と
CCLaye* pLayer = CCLaye::create();
this->addChild(pLayer);
// 最初は透明にする
//pLayer ->setOpacity(0);
// 0.5秒でフェードイン
CCFadeIn* fadein = CCFadeIn::create(0.5);
pLayer->runAction(fadein);
これでビルドはできるようになるんですが、実際に実行してもフェードインが発生しません。
じゃあどうしよう?と調べて見ると以下のサイト様にて、良い記事がありました。
[cocos2d-x] CCLayerのFadeIn/FadeOutとか (Cocoamix.jp様)
やはり同じようなことを考えていた人がいたらしく、早速試してみたのが以下のソースです。
(実装内容は最小限です。他の機能を使うときは自前で盛り込んでください)
#include "cocos2d.h"
class TestLayer: public cocos2d::CCLayerRGBA
{
public:
static TestLayer *create();
CC_PROPERTY(GLubyte, m_nOpacity, Opacity)
};
そんでもってこのクラスを使用して、元のコードをこんな感じで書き換えると・・・
やっとこさうまくいきました。
いくら CCLayer がフェードイン&アウトに対応していないからって、中にあるスプライトやらフォントやらに1つずつフェードイン&アウト設定は書きたくないですもんねw
というわけで、自分自身の備忘録を兼ねた小ネタ記事でした。
Cocoamix.jp様には大変お世話になりました、ありがとうございます。
でわでわ~ノシ
スポンサーサイト