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);

Bear 正确渲染但没有动画。我有两个问题:

  • 首先也是最重要的:我做错了什么,为什么?如何修复我的代码以使动画工作?
  • 第二个问题spriteWithSpriteFrameName推荐使用。我应该改用哪种方法?
4

1 回答 1

2

第一的:

我认为您忘记为 CCAnimation 设置延迟。我对2.0不熟悉,但我想应该有一种方法可以设置延迟。或者您可以先创建一个 SpriteFrames 数组,然后使用该方法

CCAnimation::create(array,delay);

第二:

CCSprite::createWithSpriteFrameName();
于 2012-08-29T23:10:01.603 回答