cocos2dx 播放gif
起因
或许有人会说,cocos2dx中直接帧动画就行了用什么GIF。 起因是为游戏内部要用到第三方平台的头像,而第三方平台的头像大多都是用到Gif,所以才会有了这个需求
过程
查了各种文档都没找到。但是毋庸置疑的是,大多数解析库都是依赖gif_lib这个库的。 偶然间看到了android使用的skia库的gif解析
参考skia的代码基础上,有了后来的gifforcocos2dx 的库
示例
std::string name = "g2.gif";
name = CCFileUtils::sharedFileUtils()->fullPathForFilename(name.c_str());
GifBase *gif = InstantGif::create(name);//这种方式的会一边播放一边从数据中解析帧
gif->setAnchorPoint(ccp(0,0));
gif->setPosition(ccp(0,0));
this->addChild(gif);
//CacheGif: 这种方式会在开始的时候一次性解析完,并放入缓存中。这种如果gif帧数过多耗时较长,且暂用内存过大。但是相对少的时候,播放要比前一种流畅
gif = CacheGif::create(name);
gif->setPosition(ccp(500,0));
gif->setScale(2);
this->addChild(gif);
//创建出来之后,可以像普通Sprite一样使用
转载请注明出处(http://www.cnblogs.com/boliu/p/4048096.html)
cocos2dx 播放gif的更多相关文章
- ios平台cocos2d-x播放音频、视频、音效的Demo(支持网络视频)
最近由ios应用转做游戏,游戏开始时需要播放一个视频,由于本身cocos2d-x播放视频的相关库,在网上搜到的资料都不是很全,我自己试过在cocos2dx直接调用ios的MediaPlayer来播放, ...
- cocos2d-x播放视频的处理
cocos2d-x是支持直接播放视频的,用的是Native端的播放器,视频的默认层级是在cocos的层级之上,如果是想让视频上面有cocos的控件,只能将视频的UI层级放在最下面,这个方法网上已经有比 ...
- Cocos2d-x 3.X手游开发实例详解
Cocos2d-x 3.X手游开发实例详解(最新最简Cocos2d-x手机游戏开发学习方法,以热门游戏2048.卡牌为例,完整再现手游的开发过程,实例丰富,代码完备,Cocos2d-x作者之一林顺和泰 ...
- cocos2d-x Animation
转自:http://codingnow.cn/cocos2d-x/810.html 这一篇来学习怎么使用cocos2d-x引擎播放帧动画,就是把一帧一帧的图片像电影那样显示出来.1. 首先来了解一下相 ...
- Cocos2d-x 3.1.1 学习日志14--CocosStudio学习必看
听说Cocos Studio非常久了,主要是由于骨骼动画.眼下看来Cocos2d-x播放动画的方式仅仅有2种: 第一种:是播放序列帧动画,即将动画的每一帧都载入进缓存里,须要播放时再使用Animati ...
- 《Cocos2d-x游戏开发实战精解》学习笔记4--实战一个简单的钢琴
上一节学习了使用Cocos2d-x播放音乐的方法,但是那种方法一般只适合于播放较大的音乐,而一般比较短小的音乐(如游戏中的打斗.按键音效等)则要通过playEffect来播放.本节使用该方法以及之前学 ...
- 《Cocos2d-x游戏开发实战精解》学习笔记3--在Cocos2d-x中播放声音
<Cocos2d-x游戏开发实战精解>学习笔记1--在Cocos2d中显示图像 <Cocos2d-x游戏开发实战精解>学习笔记2--在Cocos2d-x中显示一行文字 之前的内 ...
- Cocos Studio1.5.0.1开发学习笔记(一)
听说Cocos Studio很久了,主要是因为骨骼动画.目前看来Cocos2d-x播放动画的方式只有2种: 第一种:是播放序列帧动画,即将动画的每一帧都加载进缓存里,需要播放时再使用Animation ...
- [Cocos2D-x For WP8]CocosDenshion音频播放
Cocos2D-x的音频分为长时间的背景音乐和短的音效两种,我们可以通过SimpleAudioEngine::sharedEngine()方法来获取音频播放的引擎,然后调用对音频相关的操作方法就可以了 ...
随机推荐
- tomcat-users.xml配置Manager登陆用户
添加用来登陆tomcat-manager的用户 <tomcat-users> <!-- NOTE: By default, no user is included in the &q ...
- 【Oracle】控制文件管理
/* 控制文件是oracle数据库最重要的物理文件之一,每个oracle数据库都必须有一个控制文件,在启动数据库实例时, oracle会根据初始化参数查找到控制文件的名称及位置信息,并读取控制文件的内 ...
- linux虚拟机ip地址更改
在虚拟机模式下 进入 cd /etc/sysconfig/network-scripts/ vim ifcfg-eth0 编辑 IPADDR=新的内网ip PREFIX = 24 (对应255.25 ...
- SourceTree 简单使用 for Mac
系统版本: 10.12.6 SourceTree版本:2.3.1 (中文版)SourceThree安装包 密码:9jc3 传送门 目录 1.创建gitHub账号和仓库 2.sourceTree管理gi ...
- Spring中的AOP开发
1.代理模式 找个人将你原本想做的事情给做了. 三个部分组成: 抽象主题角色:真实主题和代理主题的共同接口. 真实主题角色:定义了代理角色所代表的真实对象. 代理主题角色:含有对真实主题角色的引用.代 ...
- mysq建立索引的优缺点
建立索引的优点及必要性: 第一.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性: 第二.可以大大加快 数据的检索速度,这也是创建索引的最主要的原因: 第三.可以加速表和表之间的连接,特别是在 ...
- PyQt4 初试牛刀一
建立了一个MainWindow,创建最基本的菜单栏.状态栏.工具栏,并重新定义了"X"关闭的默认行为. # -*- coding: utf-8 -*- import sys fro ...
- texlive、
0.1 卸载 texlive2007 如果系统没有安装过texlive,则跳过第0步. 可以在终端中使用如下命令查询本机已经安装的tex和latex版本: [She@She LaTex_test]$ ...
- Linux入门练习
1.echo是用于终端打印的基本命令: 1.1echo默认将一个换行符追加到输出文本的尾部. 1.2 echo中转义换行符 如需使用转义序列,则采用echo -e "包含转义序列的字符串&q ...
- 设置Linux环境变量的方法与区别(Ubuntu)
设置 Linux 环境变量可以通过 export 实现,也可以通过修改几个文件来实现,有必要弄清楚这两种方法以及这几个文件的区别. 通过文件设置 Linux 环境变量 首先是设置全局环境变量, ...