0

cocos2d-x では、次のアニメーション コードはスプライトを表示しますが、アニメーションは実行しません。私は何を間違っていますか?

// create a CCAnimation node
CCAnimation * anim = CCAnimation::animation();

// add the images to the loop (one image per frame)
anim->addSpriteFrameWithFileName("Hero/1.png");
anim->addSpriteFrameWithFileName("Hero/2.png");
anim->addSpriteFrameWithFileName("Hero/3.png");

// create an action
CCAnimate * animation   = CCAnimate::actionWithAnimation( anim );
animation->setDuration(0.5);
CCAction * repeat       = CCRepeatForever::actionWithAction(animation);

// create a sprite to run the action
CCSprite * test = CCSprite::create("Hero/1.png");
test->setPosition( ccp( 150, 150 ) );
test->runAction( repeat );
this->addChild( test );
4

3 に答える 3

0

アニメーションのフレームに遅延を設定する必要があります。CCAnimateは自動的に継続時間を計算するため、animation->setDuration()

// create a CCAnimation node
CCAnimation * anim = CCAnimation::animation();

// add the images to the loop (one image per frame)
anim->addSpriteFrameWithFileName("Hero/1.png");
anim->addSpriteFrameWithFileName("Hero/2.png");
anim->addSpriteFrameWithFileName("Hero/3.png");
anim->setDelay(.5 / 3.0);

また、子として追加してからアニメーションを開始します。

于 2012-08-08T21:38:14.453 に答える
0

これを試してみてください。

[anim  addFrameWithFilename:Hero/1.png];
id rep_frame;
id frameactions=[CCAnimate actionWithDuration:1.0 animation:anim restoreOriginalFrame:YES];    
rep_frame=[CCRepeatForever actionWithAction:frameactions];
[self runAction:rep_frame];
于 2012-08-10T11:47:42.780 に答える