Cocos2d-x SpriteFrameCache的使用

时间:2021-04-24 02:16:22

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

Cocos2d-x SpriteFrameCache的使用

图中的小人是会动的。

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

Cocos2d-x SpriteFrameCache的使用

plist类似:

Cocos2d-x SpriteFrameCache的使用

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

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

核心代码:

 bool SpriteScene::init(){
     if (!Layer::init()){
         return false;
     }
     auto visibleSize = Director::getInstance()->getVisibleSize();

     /*可以用来取代TextureCache来进行图片预加载*/
     auto spriteCache = SpriteFrameCache::getInstance();
     spriteCache->addSpriteFramesWithFile("runs.plist");
     Vector<SpriteFrame*> frames;
     std::ostringstream osr;
     ; i <= ; ++i){
         osr << "run" << i << ".png";
         frames.pushBack(spriteCache->getSpriteFrameByName(osr.str()));
         osr.str("");
     }
     auto animation = Animation::createWithSpriteFrames(frames, 0.1f);
     auto animate = Animate::create(animation);

     auto sprite = Sprite::createWithSpriteFrame(spriteCache->getSpriteFrameByName("run1.png"));
     sprite->setPosition(Point(visibleSize.width / , visibleSize.height / ));
     this->addChild(sprite);
     sprite->runAction(RepeatForever::create(animate));

     return true;
 }

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

以上。

Cocos2d-x SpriteFrameCache的使用的更多相关文章

  1. cocos2d源码剖析

    1. TextureAtlas http://www.cocoachina.com/bbs/read.php?tid-311439-keyword-TextureAtlas.html 2. Label ...

  2. Cocos2d 之FlyBird开发---GameUnit类

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. 这节来实现GameUnit类中的一些函数方法,其实这个类一般是一个边写边完善的过程,因为一般很难一次性想全所有的能够供多个类共用的方法.下 ...

  3. 小尝试一下 cocos2d

    好奇 cocos2d 到底是怎样一个框架,正好有个项目需要一个游戏框架,所以稍微了解了一下.小结一下了解到的情况. 基本概念 首先呢,因为 cocos2d 是基于 pyglet 做的,你完全可以直接用 ...

  4. 采用cocos2d-x lua 制作数字滚动效果样例

    require "Cocos2d"require "Cocos2dConstants"local testscene = class("testsce ...

  5. Cocos2d 利用继承Draw方法制作可显示三维数据(宠物三维等)的三角形显示面板

    很久没有写博客了,这段时间比较忙,又是搬家又是做自己的项目,还有太多琐碎的事情缠身,好不容易抽出时间把最近自己做的一些简单例子记录一下. 在我的项目中,我需要一个显示面板来显示游戏中的一个三维数据,例 ...

  6. iPhone开发与cocos2d 经验谈

    转CSDN jilongliang : 首先,对于一个完全没有mac开发经验,甚至从没摸过苹果系统的开发人员来说,首先就是要熟悉apple的那一套开发框架(含开发环境IDE.开发框架uikit,还有开 ...

  7. cocos2d学习记录

    视频 - http://www.manew.com/forum-105-3.html一个论坛帖 - http://www.zhihu.com/question/21114802官网 - http:// ...

  8. Android下Cocos2d创建HelloWorld工程

    最近在搭建Cocos2d的环境,结果各种问题,两人弄了一天才能搞好一个环境-! -_-!! 避免大家也可能会遇到我这种情况,所以写一个随笔,让大家也了解下如何搭建吧- 1.环境安装准备 下载 tadp ...

  9. 学生信息管理系统(cocos2d引擎)——数据结构课程设计

    老师手把手教了两天半,看了一下模式,加了几个功能就大功告成了!!! 给我的感想就是全都是指针! 添加图片精灵: CCSprite*  spBG = CCSprite::create("&qu ...

  10. cocos2d触碰例子代码

    // // TestLayer.h // MiniTD // // Created by OnePiece on 12-7-30. // Copyright 2012年 __MyCompanyName ...

随机推荐

  1. ichart&period;js绘制虚线 ,平均分虚线

    var Data=new Array(); Data[0] = { labels : ["第一单元","第二单元","第三单元",&quot ...

  2. 简易版CMS后台管理系统开发流程

    目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口 ...

  3. Web 项目可能会用到的20款优秀的开源工具

    开源的应用程序和它们的源代码可以免费获得,因为版权是属于任何进行过修改或者提交代码的人.大多数提供开源软件的公司都可以建立行业标准,因此可以获得有利的竞争优势. 很多的开源应用程序和工具都有很强的替代 ...

  4. IIS 之 打开&sol;关闭 Internet 信息服务

    由于建立测试网站测试代码,重装电脑后不知道IIS在哪打开.下面以windows7为例介绍,打开IIS管理器的简要步骤. 第一步.查找IIS 1.点击" 开始 "→" 控制 ...

  5. 层次数据结构字符串处理&comma;split函数使用

    String str1 = "11@22#33,44,55,#bb#cc,dd,ee,#@DDD@TTT#999,#@"; String[] CX = str1.split(&qu ...

  6. P114、面试题17:合并两个排序的链表

    题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增顺序的.struct ListNode{      int    m_nKey;      ListNode*    m_p ...

  7. android 项目中使用对话框统一封装

    近期在做拼车项目中使用到了一些对话框,而且在非常多地方都使用到了,既然非常多地方使用到,那么肯定要封装一下,

  8. myeclipse10&period;7皴&comma;出口解决war包时报&OpenCurlyDoubleQuote;SECURITY ALERT&colon; INTEGERITY CHECK ERROR”

    一.操作系统的环境是win7,64bit和32bit的操作系统我试过都OK 依照网上一些Crack破解程序步骤操作就能够完毕破解过程, 也能够到我的CSDN资源里下载文件包 myeclipse10.7 ...

  9. appium自动化测试等待的三种方法

    第一种  sleep(): 设置固定休眠时间.python 的 time 包提供了休眠方法 sleep() ,导入 time包后就可以使用 sleep()进行脚本的执行过程进行休眠. python # ...

  10. 20190104xlVBA&lowbar;在课表里标记自己的课程

    Sub TagMyCourses() Const HEAD_ROW = 3 With ActiveSheet endrow = .Cells.Find("*", .Cells(1, ...