我正在尝试了解动画如何在cocos2dx
上运行(我正在开发OSX for IPad目标)。
我已按照此tutorial尝试从objective-c
引导至C++
。
这是我的代码:
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
已弃用。我应该使用哪种方法?答案 0 :(得分:2)
首先:
我想你忘记设置CCAnimation的延迟。我不熟悉2.0,但我想应该有一种设置延迟的方法。或者您可以先创建一个SpriteFrame数组,然后使用方法
CCAnimation::create(array,delay);
第二
CCSprite::createWithSpriteFrameName();