CCAnimationの基本

cocos2d-xにおける、アニメーションの基本的な使い方です。

[cpp]
/// アニメーションフレームの生成
CCAnimation* pAnimation = CCAnimation::create();

/// アニメーションフレームに画像を追加
/// [例]
/// hoge_00.png
/// hoge_01.png
/// hoge_02.png
/// hoge_03.png
/// という画像があるとします
for( int i=0; i<4; i++ )
{
char filename[128] = {0};
sprintf(filename,"hoge_%02d.png",i);
pAnimation->addSpriteFrameWithFileName(filename);
}

/// アニメーションを切り替える速度を決める
/// ※1.0fで一秒になります
pAnimation->setDelayPerUnit( 0.1f );

/// 無限ループさせる
/// [例]
/// 1 … 一回ループさせる
/// 2 … 二回ループさせる
/// -1 … 無限ループさせる
pAnimation->setLoops(-1);

/// アニメーションの生成
CCAnimate* pAnimate = CCAnimate::create(pAnimation);

/// スプライトの生成
CCSprite* pSprite = CCSprite::create();

/// レイヤーにスプライトを追加
this->addChild(pSprite);

/// スプライト座標を設定する
pSprite->setPosition(CCPointMake(0.0f,0.0f));

/// アニメーションを実行する
pSprite->runAction(pAnimate);
[/cpp]

ポイントとしては、

[cpp]

sprintf(filename,"hoge_%02d.png",i);

[/cpp]

の、%02dという部分ですが、

これは、例えば i が 1 の時、

“hoge_01.png”となります。

もう一つ例を上げておくと、

[cpp]

sprintf(filename,"hoge_%01d.png",i);

[/cpp]

の時、同じように i が 1 の場合、

“hoge_1.png”となります。

後は、

[cpp]

pAnimation->setDelayPerUnit( 0.1f );

[/cpp]

の、

setDelayPerUnitの引数は、フレーム単位ではなくて秒単位です。

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です