0

私はアニメーションがどのように機能するかを理解しようとしていますcocos2dx(私はiPadターゲット用のOSXで開発しています)。

からへの変換を試みて、このチュートリアルに従いました。objective-cC++

これが私のコードです:

CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("oras.plist");

CCSpriteBatchNode* spriteBatchNode = CCSpriteBatchNode::create("oras.png", 8);
this->addChild(spriteBatchNode);

CCAnimation *bearWalkingAnimation = CCAnimation::create();

for (int i = 0 ; i < 8 ; ++i )
{

    std::stringstream ss;
    ss << "bear" << i + 1  << ".png";

    std::string name = ss.str();
    CCSpriteFrame* sprite =  CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(name.c_str());
    bearWalkingAnimation->addSpriteFrame(sprite);


}

CCSpriteFrame *startSpriteFrame = static_cast<CCSpriteFrame *> (bearWalkingAnimation->getFrames()->objectAtIndex(0));

//deprecated
CCSprite *startSprite = CCSprite::spriteWithSpriteFrameName("bear1.png"); 
startSprite->setPosition(ccp (size.width / 2 , size.height / 2));

CCAnimate *bearAnimate = CCAnimate::create(bearWalkingAnimation);

CCRepeatForever * animAction = CCRepeatForever::create(bearAnimate);
startSprite->runAction(animAction);

this->addChild(startSprite);

クマは正しくレンダリングされますが、アニメーション化されません。2つの質問があります:

  • 最初で最も重要なこと:私が間違っていることとその理由は何ですか?アニメーションを機能させるためにコードを修正するにはどうすればよいですか?
  • 2番目の質問非推奨spriteWithSpriteFrameNameです。代わりにどちらの方法を使用する必要がありますか?
4

1 に答える 1

2

初め:

CCAnimationの遅延を設定するのを忘れていると思います。私は2.0に精通していませんが、遅延を設定する方法があるはずだと思います。または、最初にSpriteFrameの配列を作成してから、メソッドを使用することもできます

CCAnimation::create(array,delay);

2番:

CCSprite::createWithSpriteFrameName();
于 2012-08-29T23:10:01.603 に答える