我试图了解动画是如何工作的cocos2dx
(我正在为 iPad 目标开发 OSX)。
我已按照本教程尝试从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
不推荐使用。我应该改用哪种方法?