瘸腿蛤蟆笔记07-cocos2d-x-3.2游戏基础 之Plist文件帧动画篇

转载标明出处:http://blog.csdn.net/notbaron/article/details/38326351

上篇回顾

         上篇中,蛤蟆学习了手动创建一个帧动画,然后用精灵调用该动画最后将动画在HelloWorld 上显示出来。不过上篇我们通过一个for循环创建动画,在实际做游戏当中可能使用的比较少。这篇我们继续帧动画,不过这次的帧动画是采用PLIST文件来实现的。

理论补充

         Plist文件介绍,以下摘自维基百科:

Mac OS XCocoaNeXTSTEPGNUstep编程框架中,属性列表(Property List)文件是一种用来存储串行化后的对象的文件。属性列表文件的文件扩展名.plist,因此通常被称为plist文件。

         因为cocos2d-x来源于cocos2d-iphone所以会有plist文件,不知道将来会不会被替换掉。

 

代码部分

         我们还是用之前创建的HelloWorld项目工程。复制的图片还是和上一篇一样多。此外复制

\cocos2d-x-3.2\tests\cpp-tests\Resources\animations\目录中的grossini.plist,grossini_blue.plist,grossini_family.plist到我们项目的resources目录中。

        

         这次我们只需要在

bool HelloWorld::init() 函数中加入如下代码即可。

 

         auto grossini =Sprite::create("grossini.png");

         auto cache =AnimationCache::getInstance();

         cache->addAnimationsWithFile("animations-2.plist");

         auto animation = cache->getAnimation("dance_1");

    auto action =Animate::create(animation);

         grossini->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 +origin.y));

   grossini->runAction(action);

         this->addChild(grossini, 0);

代码明显变短了,和手动创建帧动画比起来。

 

代码解释

         auto grossini =Sprite::create("grossini.png");

//这行就不解释了

         auto cache =AnimationCache::getInstance();

//这个类继承如下

这个是动画缓存单例类。如何想要保存动画,就需要使用这个缓存。

   cache->addAnimationsWithFile("animations-2.plist");

上一行代码表示从plist添加一个动画。确保帧已经加载到了SpriteFrameCache中。

animations-2.plist文件复制自 \cocos2d-x-3.2\tests\cpp-tests\Resources\animations\路径,复制的时候记得同时复制 grossini.plist,grossini_blue.plist,grossini_family.plist.因为animations-2.plist 文件中有包含这些plist文件。

auto animation = cache->getAnimation("dance_1"); //从缓存中获取一个动画。

auto action = Animate::create(animation);   //创建一个动画播放器

grossini->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));

//这一行设置精灵的位置。

   grossini->runAction(action);    //此行不解释了

         this->addChild(grossini, 0);  //此行不解释了

 

总结

         通过本笔记,我们使用了Plist文件进行了动画创建。从代码量上来看明显比手动创建要少了很多,这是因为很多东西都放在了plist文件里面实现了。

         下篇蛤蟆回去学习下如何使用TexturePacker这个工具来产生Plist文件。

你可能感兴趣的:(瘸腿蛤蟆笔记07-cocos2d-x-3.2游戏基础 之Plist文件帧动画篇)