Cocos2dx 学习笔记整理----在项目中使用图片(二)
之前了解了一种比较简单的图片的使用方式,
今次来了解稍微复杂一点的图片使用方式,plist+png。
这里要用到之前提到的Texture Packer。
Texture Packer是一款图片打包工具,Texture Packer可以将素材打包成我们项目需要的格式。
Cocos2dx支持很多种格式, 我们可以将某一种类的或者有共性的图片打包到一个png,然后用plist管理,以节约加载和内存,且显卡支持的纹理尺寸的长宽为2的n次幂,Texture Packer会把纹理整合到次尺寸。
今次我们利用plist和png来创建一个动画。
以下是我搜集到的一个系列素材:

在Texture Packer中点击add folder,定位到此文件夹;
在左边的output栏目:选择dataformat为cocos2d;
如下:

然后点击工具栏里面的publish级完成导出,导出的成功如下:

回到我们之前的代码中,加入以下代码:
//使用plist作为动画
CCTexture2D::PVRImagesHavePremultipliedAlpha(true);
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("feiyunan.plist");
CCSprite * player = CCSprite::create("feiyunan.png");
this->addChild(player);
这样,我们就可以在程序中看到这个图片了。
但是,这个素材是一个系列的动画帧来的,我们看到的却只有一个不动所有帧都显示在上面的的图片。
用文本编辑器打开plist文件,可以看到里面保存了每帧动画的所有资料。
然后这里附带学习了一下动画的播放方式。
CCArray* animFrames = CCArray::createWithCapacity(15);//有多少帧
char str[100] = {0};
for(int i=0; i<24; i++)
{
sprintf(str,"feiyu%d.png",i);
CCSpriteFrame* frame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(str);
if( frame != NULL )
animFrames->addObject( frame );
}
CCAnimation *animation = CCAnimation::createWithSpriteFrames( animFrames,0.1f );
animation->setLoops(-1);
player->runAction(CCAnimate::create(animation));
player->setPosition(ccp(200,200));
以上内容皆可在api中查到,然后重新运行,可以看到角色在跑动了。
如下:

Cocos2dx 学习笔记整理----在项目中使用图片(二)的更多相关文章
- Cocos2dx 学习笔记整理----在项目中使用图片(一)
cocos2dx有多种使用图片的方法,先来个最简单的:用CCSprite直接使用图片. 首先,进入到之前建立的项目,把你将要使用的图片放入到目录下的Resources文件夹里面.项目中以相对路径使用资 ...
- Cocos2dx 学习笔记整理----在项目中使用图片(三)
这节练习下DragonBones. 手机由于性能所限,需要特注意资源的使用. 游戏项目的话由于资源比较多,一般都会用到DragonBones来做动作,这个又称为龙骨. DragonBones传送点:h ...
- Cocos2dx 学习笔记整理----第一个项目
接上一节, 进入新建的项目下面的proj.win32下面,找到项目名.sln文件(我的是game001.sln),双击会通过VS2010打开.(当然,你装了VS什么版本就是什么版本) 将你的项目设为启 ...
- Cocos2dx 学习笔记整理----开发环境搭建
最近在学习cocos2dx,预备将学习过程整理成笔记. 需要的工具和环境整理一下: 使用的版本 cocos2dx目前已经出到了v3.1.1,学习和项目的话还是用2.2.3为宜,毕竟不大想做小白鼠,并且 ...
- 五毛的cocos2d-x学习笔记01-创建项目
终于准备开始学习cocos2d-x了.因为想和同学一起做游戏参加比赛,所以打算学习很热的Cocos2d-x.因为已经学习了C++,所以我想入门应该不是很困难.再加上官网有中文教程以及多不胜数的游戏开发 ...
- Cocos2dx 学习笔记整理----场景切换
据说Cocos2dx场景切换的方法有32种:cocos2dx 常见的32种切换场景的动画 无需一一求证,只需要知道切换场景需要怎么做就行了. 作为导演CCDirector,切换场景的事情当然归它管了. ...
- Python学习笔记整理(三)Python中的动态类型简介
Python中只有一个赋值模型 一.缺少类型声明语句的情况 在Python中,类型是在运行过程中自动决定的,而不是通过代码声明.这意味着没有必要事声明变量.只要记住,这个概念实质上对变量,对象和它们之 ...
- Python学习笔记整理(五)Python中的列表.
列表和字段,这两种类型几乎是Python所有脚本的主要工作组件.他们都可以在原处进行修改,可以按需求增加或缩短,而且包含任何种类的对象或者被嵌套. 一.列表 列表的主要属性: *任意对象的有序集合 从 ...
- Python学习笔记整理(四)Python中的字符串..
字符串是一个有序的字符集合,用于存储和表现基于文本的信息. 常见的字符串常量和表达式 T1=‘’ 空字符串 T2="diege's" 双引号 T3=""&quo ...
随机推荐
- wpf中ListBox的选中项与ComboBox间的绑定
产品类: public class Product:NotificationObject { private int productID; public int ProductID { get { r ...
- js.map error
1. 问题: 1.1 通过bower install 的components 许多在运行的时候报404无法找到js.map文件, 如图: 2. 分析: 2.1 查看 ...
- thrift概述
Apache Thrift 是FaceBook实现的一种跨平台的远程服务调用(RPC)的框架.它采用接口描述语言(IDL)定义并创建服务,传输数据采用二进制格式,相对于XML和Json等常用数据传输方 ...
- POJ 3419 Difference Is Beautiful(RMQ+二分 或者 模拟)
Difference Is Beautiful Time Limit:5000MS Memory Limit:65536KB 64bit IO Format:%lld & %l ...
- Linux学习 -- Shell基础 -- Bash基本功能
历史命令 history -c clear -w 写入 ~/.bash_history 默认保存1000条, 可在/etc/profile中修改 调用 Tab补全 命令.目录.文件 命令别名 ...
- Gym 100518E Embedding Caterpillars
构造+DFS 很容易的可以构造两个,最后一个不会构造的话 DFS一下就可以了 #include<iostream> #include<string> #include< ...
- cordova插件开发-1
这是初级编,实现了js调用Android代码 首先需要编写java代码: public class AppUpdate extends CordovaPlugin { @Override public ...
- AXIS-web.xml里配置axis报错addChild: Child name 'AxisServlet' is not unique 解决办法
报错这个那么就表示,web.xml中有相同的AxisServlet的这个名字,可以把原来的删除配置自己的,也可以保留原来的,自己的不配置 Ctrl+f 搜索下就知道了
- jQuery常用及基础知识总结(三)
1.通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom定义的方法. 2. ...
- FusionCharts导出图表常见问题(FAQ)汇总---FusionCharts常见问题大全
在前面几篇文章中,我们介绍了FusionCharts生成Flash图表常见问题FAQ以及使用中的一些常见报错及调试/解决方法.本文继续介绍FusionCharts导出图表时的一些常见问题(FAQ). ...