[置顶] 【爱上cocos2d-x之十一】帧动画加载,从.png和.plist文件

1. 从.png和.plist文件加载帧动画

	CCSpriteBatchNode* spritebatch=CCSpriteBatchNode::create("animations/walk.png");
	CCSpriteFrameCache* cache=CCSpriteFrameCache::sharedSpriteFrameCache();
	cache->addSpriteFramesWithFile("animation/walk.plist");
	m_pSprite1=CCSprite::createWithSpriteFrameName("walk_go_01.png");
	spritebatch->addChild(m_pSprite1);
	this->addChild(spritebatch)

现在我们有一个需求:创建CCArray对象,增加动画中的所有frame到此对象中。在这个动画例子中,有10个frame都有一模一样的尺寸,因此我们利用嵌套循环来迭代。

	CCArray* animFrames=CCArray::createWithCapacity(11);
	char str[100]={0};
	for(int i=1; i<11; i++)
	{
		sprintf(str,"walk_go_%02d.png",i);
		CCSpriteFrame* frame=cache->spriteFrameByName(str);
		animFrames->addObject(frame);
	}

	CCAnimation* animation=CCAnimation::createWithSpriteFrames(animFrames,0.4f);
	m_pSprite1->runAction(CCRepeatForever::create(CCAnimate::create(animation)));

2. CCAnimationCache可以加载xml/plist文件,同样可以批量加载动画,而且这个接口更简单易用。

	CCAnimationCache* cache=CCAnimationCache::sharedAnimationCache();
	cache->addAnimationsWithFile("animations/animations-2.plist");
	CCAnimation animation=cache->animationByName(walk_1);
	CCAnimate animate=CCAnimate::create(animation);
	sprite->runAction(animate);


你可能感兴趣的:(cocos2d-x,plist,帧动画)