码迷,mamicode.com
首页 > 系统相关 > 详细

Cocos2d-x SpriteFrameCache的使用

时间:2015-06-03 22:54:58      阅读:366      评论:0      收藏:0      [点我收藏+]

标签:

根据官方文档与其他c++属性实现的类似书中示例:

技术分享

图中的小人是会动的。

 

首先使用texturepacker制作出一张拼图,导出plist等文件:

技术分享

plist类似:

技术分享

 

 

3.x的cocos似乎不再鼓励使用什么BatchNode等优化方式,官方支持的是SpriteFrameCache,类似TextureCache。

 

使用的方式是在某个位置加载plist文件,然后直接通过getSpriteFrameByName就可以获取SpriteFrame。

 

核心代码:

 1 bool SpriteScene::init(){
 2     if (!Layer::init()){
 3         return false;
 4     }
 5     auto visibleSize = Director::getInstance()->getVisibleSize();
 6 
 7     /*可以用来取代TextureCache来进行图片预加载*/
 8     auto spriteCache = SpriteFrameCache::getInstance();
 9     spriteCache->addSpriteFramesWithFile("runs.plist");
10     Vector<SpriteFrame*> frames;
11     std::ostringstream osr;
12     for (int i = 1; i <= 15; ++i){
13         osr << "run" << i << ".png";
14         frames.pushBack(spriteCache->getSpriteFrameByName(osr.str()));
15         osr.str("");
16     }
17     auto animation = Animation::createWithSpriteFrames(frames, 0.1f);
18     auto animate = Animate::create(animation);
19     
20     auto sprite = Sprite::createWithSpriteFrame(spriteCache->getSpriteFrameByName("run1.png"));
21     sprite->setPosition(Point(visibleSize.width / 2, visibleSize.height / 2));
22     this->addChild(sprite);
23     sprite->runAction(RepeatForever::create(animate));
24 
25     return true;
26 }

 

ostringstream是我用来实现string格式化的一个方式,这个流的置空大部分文章都认为是str("")这个函数。同时注意不要给流后加上std::endl;

 

以上。

Cocos2d-x SpriteFrameCache的使用

标签:

原文地址:http://www.cnblogs.com/lhyz/p/4550348.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!