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级完成导出,导出的成功如下:

回到我们之前的代码中,加入以下代码:

?





1

2

3

4

//使用plist作为动画

CCTexture2D::PVRImagesHavePremultipliedAlpha(true);

CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("feiyunan.plist");

CCSprite * player = CCSprite::create("feiyunan.png");<br>this->addChild(player);

这样,我们就可以在程序中看到这个图片了。

但是,这个素材是一个系列的动画帧来的,我们看到的却只有一个不动所有帧都显示在上面的的图片。

用文本编辑器打开plist文件,可以看到里面保存了每帧动画的所有资料。

然后这里附带学习了一下动画的播放方式。

?





1

2

3

4

5

6

7

8

9

10

11

12

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));<br>player->setPosition(ccp(200,200));

  

以上内容皆可在api中查到,然后重新运行,可以看到角色在跑动了。

如下:

Cocos2dx 学习笔记整理----在项目中使用图片(二)

时间: 2024-08-03 11:08:59

Cocos2dx 学习笔记整理----在项目中使用图片(二)的相关文章

Cocos2dx 学习笔记整理----在项目中使用图片(初)

cocos2dx有多种使用图片的方法,先来个最简单的:用CCSprite直接使用图片. 首先,进入到之前建立的项目,把你将要使用的图片放入到目录下的Resources文件夹里面.项目中以相对路径使用资源皆是以Resources文件夹为根目录参考的. 然后进入到HelloWorldScene.cpp的init方法的最后面加入以下代码: ? 1 2 3 CCSprite * sprite = CCSprite::create("bl_24.png"); sprite->setPosi

Cocos2dx 学习笔记整理----第一个项目

接上一节, 进入新建的项目下面的proj.win32下面,找到项目名.sln文件(我的是game001.sln),双击会通过VS2010打开.(当然,你装了VS什么版本就是什么版本) 将你的项目设为启动项目, 切换到解决方案视图, 然后邮件点击解决方案, 选择生成解决方案. 第一次生成根据个人机器性能会消耗大概1-3分钟,呵呵. 但是以后会快很多的. 生成成功的话会在输出窗口显示如下: 一般都会生成成功,但是我生成的时候失败了很多次,后来发现是这个问题:http://www.cnblogs.co

Cocos2dx 学习笔记整理----场景切换

据说Cocos2dx场景切换的方法有32种:cocos2dx 常见的32种切换场景的动画 无需一一求证,只需要知道切换场景需要怎么做就行了. 作为导演CCDirector,切换场景的事情当然归它管了. 切换场景的接口如下: ? 1 CCDirector::sharedDirector()->replaceScene(cocos2d:CCScene * pScene); 所以,我们只要把需要切换的场景实例传进去就可以了. ? 1 2 CCScene * pScene = GameMain::sce

Cocos2dx 学习笔记整理----开发环境搭建

最近在学习cocos2dx,预备将学习过程整理成笔记. 需要的工具和环境整理一下: 使用的版本 cocos2dx目前已经出到了v3.1.1,学习和项目的话还是用2.2.3为宜,毕竟不大想做小白鼠,并且学习了几天之后才发出3.X版本的,版本内容变动比较大. 开发环境 1 jdk 1.6以上 2 python 2.7为宜(创建项目要用的) 3 NDT+Android SDK 4 Cygwin或者MinGW 开发工具 1 Eclipse + CDT + ADT 2 VS2010 3 Sublime T

五毛的cocos2d-x学习笔记01-创建项目

终于准备开始学习cocos2d-x了.因为想和同学一起做游戏参加比赛,所以打算学习很热的Cocos2d-x.因为已经学习了C++,所以我想入门应该不是很困难.再加上官网有中文教程以及多不胜数的游戏开发教程,所以个人认为只要有心事一定能学好的.说来惭愧,我之前曾花了几天照着视频做了一个“一个都不能死”的游戏,但是现在一点映像都没有了.哎╮(╯▽╰)╭,只能重新学习了. 配置:win8 64位+cocos2d-x3.6+VS2013+Python2.7.8.cocos2d-x3.6我放在了D盘,项目

Python学习笔记整理(五)Python中的列表.

列表和字段,这两种类型几乎是Python所有脚本的主要工作组件.他们都可以在原处进行修改,可以按需求增加或缩短,而且包含任何种类的对象或者被嵌套. 一.列表 列表的主要属性: *任意对象的有序集合 从功能上看,列表就是收集其他对象的地方,可以把它看作组.列表所包含每一项都保持了从左到右的位置顺序(它们是序列) *通过偏移读取 和字符串一样,可以通过列表对象的偏移对其进行索引,从而读取对象的某一部分内容.可以自行分片和合并之类的任务. *可变长度,异构以及任意嵌套 列表可以实地增长或者缩短,并且可

Python学习笔记整理(三)Python中的动态类型简介

Python中只有一个赋值模型 一.缺少类型声明语句的情况 在Python中,类型是在运行过程中自动决定的,而不是通过代码声明.这意味着没有必要事声明变量.只要记住,这个概念实质上对变量,对象和它们之间的关系都适用.那么这个概念也容易理解并掌握. 1.变量,对象和引用 变量创建:一个变量,当代码第一次给它赋值时它就被创建了.之后的赋值将会改变已创建的变量名的值.Python在代码运行之前先检测变量名,可以当成是最初的赋值创建变量. 变量类型:变量永远不会有任何的它关联的类型信息或约束.类型的概念

Python学习笔记整理(四)Python中的字符串..

字符串是一个有序的字符集合,用于存储和表现基于文本的信息. 常见的字符串常量和表达式 T1=‘’ 空字符串 T2="diege's" 双引号 T3="""...""" 三重引号块 T4=r'\temp\diege' Raw字符串 抑制(取消)转义,完全打印\tmp\diege,而没有制表符 T5=u’diege' Unicode字符串 T1+T2     合并 T1*3    重复 T2[i]    索引 T2[i:j] 分片

Cocos2dx 3.1.1 学习笔记整理(1)

最近手痒了,不小心下载了cocos2dx 3.1.1,又搞了个VS2012,于是头脑发热的搞起 3.1.1了. 我是有多么的不专心啊. 已经把自己之前的学习内容从2.2.3迁移到了3.1.1,除了骨骼动画相关的之外. 简单记录一下过程: 1 安装与搭建 解压cocos2dx3.1.1版本,根目录下会有download-deps.py和setup.py, 预先用python分别对这两个文件跑一遍,有问题的话解决问题,没问题的话最好了. 2新建项目 跑完以上两个py文件之后,会自己将所有相关的系统环