cocos2d的常用动作及效果总结之五:Animation

这一篇是讲一下如何在cocos2d中实现动画。

实现动画的步骤:

  1. 加载帧
  2. 生成动画对象
  3. 运行动画

加载帧我用过两种方式:

  1. 第一种是使用.plist文件,通过CCSpriteFrameCache读取动画帧,并加载到CCAnimation对象中,如下:
    [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"animate.plist"];NSMutableArray *walkAnimFrames = [NSMutableArray array];
    for(int i = 1; i <= 8; ++i) {[walkAnimFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"bear%d.png", i]]];
    }
    CCAnimation *walkAnim = [CCAnimation animationWithFrames:walkAnimFrames delay:0.1f];    id actions = [ CCRepeatForeveractionWithAction: [CCAnimateactionWithAnimation:walkAnim restoreOriginalFrame:NO] ];  
    [sprite runAction:actions];
     这里面的 .plist 是什么呢?

    我们知道动画实际上就是由一帧帧的图片连续播放产生的,那么我们在cocos2d中实现动画时,首先要把所有的动画帧加载到内存中,但一张一张的加载比较费时费事,所有,就会有工具把所有的图片 揉成一个图片,横七竖八的放到一个图片文件中,为了再把这些图片分离出来,就需要一个数据文件记载每一个图片的位置及其大小,这个文件就是上面提到的 .plist 文件。

    下图左边就是图片文件,而右侧的是 .plist 文件的内容。

  1. .plist 文件可以通过Zwoptex 或 TexturePacker程序生成, Zwoptex的flash版本是免费的,桌面版是收费的,TexturePacker初级版是免费的,高级版是收费的。
     
  2. 如果你不想花钱买上面这两个软件,有什么办法不用 .plist 文件的形式加载动画吗?答案是有,目前我就是不用 .plist 的形式加载动画的,下面先给出代码:
    CCTexture2D *texture = [[CCTextureCache sharedTextureCache] addImage:fileName];    
    NSMutableArray *animFrames = [NSMutableArray array];
    [animFrames removeAllObjects];for (int i=0; i<frameCount; i++) {CCSpriteFrame *frame = [CCSpriteFrame frameWithTexture:texture rect:CGRectMake(spriteWidth*i,0, spriteWidth,spriteHeight)];[animFrames addObject:frame];
    }
    CCAnimation *animation =[CCAnimation animationWithFrames:animFrames delay:delay];id actions = [ CCRepeatForever actionWithAction: [CCAnimate actionWithAnimation:walkAnim restoreOriginalFrame:NO] ];  
    [sprite runAction:actions];
    
    这种方法的不同主要在于,加载帧时,使用的是  CCSpriteFrame frameWithTexture:(CCTexture2D*)texture rect:(CGRect)rect ,也就是,直接加载图片,然后使用 CGRect 来指定加载图片的位置。

    比如,上面的代码中表示的就是动画图片是按照水平排列的,每个动画帧的宽是 spriteWidth, 高是 spriteHeight,然后,通过水平移动坐标,来一个一个的加载图片。

两种方式,区别仅仅在于如何加载动画帧,其他的步骤是一样的。


下面说一下如何改变精灵的图片。当你的操纵的精灵,吃了什么东东,然后变身了,那么显示在屏幕上的图片就要变化,那么如何设定呢?

  1. CCSpriteFrame *frame = [[CCSpriteFrameCache sharedSpriteFrameCache]spriteFrameByName:@"grossini_dance_02.png"];
    [sprite1 setDisplayFrame:frame];
    这种方法适用于适用 .plist的方式加载帧的方式,因为每一个帧都有自己的名字,所以很容易通过名字取得指定的帧。
  2. [self setTextureRect:CGRectMake(80, 0, 40, 40)];
    
    这种方式适用于我第二种加载动画的方式,这种方式没有像.plist那种方式那样指定了每个帧的名字,所以,可以通过直接指定 位置的方式来替换 精灵的图片。
  3. [self setTexture:(CCTexture2D *) texture];
    这种的话,直接适用 CCTexture2D对象来替换。

关于他们有什么不同,有人说 setDisplayFrame 不会改变精灵的大小,替换帧后,会调整显示比例是精灵的大小不改变,而setTexture会改变精灵的大小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267190.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

雷鸟html签名设置,thunderbird 使用OpenPGP加解密邮件

一、添加插件Enigmail二、进行密钥管理&#xff0c;并创建->新密钥对三、选择账户&#xff0c;选择有无密码&#xff0c;创建密钥。根据提示选择是否要撤销文件。选择无密码创建密钥对速度快。最好选择生成撤销证书&#xff0c;在以后密钥对无用时告诉密钥服务器撤销无效公钥…

男生学计算机哪专业好,男生学计算机科学与技术专业好不好有前途吗

每年都有很多考生在填报志愿的时候&#xff0c;会选择填报计算机科学与技术专业。那么&#xff0c;男生学计算机科学与技术专业好吗&#xff1f;下面和小编一起来看看吧&#xff01;男生适合学计算机科学与技术专业吗计算机科学与技术专业主要培养具有良好的科学素养&#xff0…

字符串不替代_TI-Nspire 系列的字符串操作

本文遵循 CC BY-NC-SA 协议。一 前言在编程中&#xff0c;对字符串进行操作是很常见的。但是TI-Nsipre 对字符进行操作的函数有限&#xff0c;缺少一些如在字符串中插入字符、删除字符等常用功能&#xff0c;给编程带来不便。笔者经过研究&#xff0c;实现了在字符串中插入字符…

如何在Win Server 2008R2环境下,把域帐户加到本地管理员组??

如何在Win Server 2008R2环境下&#xff0c;把域帐户加到本地管理员组 我们在大型企业中&#xff0c;经常不会用域管理员登陆&#xff0c;而是将某个OU下特定用户加入到全局组&#xff0c;或者将某个用户加入到本地管理员组中&#xff0c;但是局域网庞大&#xff0c;不可能一个…

3ds Max 2018 在安装后无法启动或出现不稳定

问题&#xff1a; 安装 3ds Max 2018 后&#xff0c;软件无法正常启动&#xff0c;或在打开后不久出现不稳定和崩溃。 原因&#xff1a; 有多种原因可能会导致这些错误&#xff1a; ▪ 3ds Max、Windows 更新和 ProSound.dlc 声音驱动程序之间发生冲突&#xff1b; ▪ Windows …

怎样用计算机算出别人的出生日期,【怀孕出生日期计算器_怀孕出生日期计算器专题】- 天鹅到家...

很多要想比较技术专业且精确地预测分析自身的排卵期的女性、要想怀孕或避开怀孕的女性&#xff0c;或是要想根据对排卵期的预测分析&#xff0c;根据排卵期時间的不一&#xff0c;对生理学病症做出一些预防的女性&#xff0c;能够运用女性排卵期计算器。女性排卵期计算器可以根…

c++中内敛函数_C/C++求职者必备 23 道面试题,一道试题一份信心

1、 Static有什么用途&#xff1f;(1)函数体内static变量的作用范围是该函数体&#xff0c;该变量的内存只被分配一次&#xff0c;因此它的值在下次调用时不变&#xff1b; (2)模块内的static全局变量同样只能在该模块内的函数访问和调用&#xff0c;不能被模块外的其他函数访问…

不安装oracle客户端如何用plsql连接oracle

https://jingyan.baidu.com/article/d2b1d1029f2bbb5c7e37d4f4.html转载于:https://www.cnblogs.com/feifeicui/p/8949725.html

计算机专业研究生面试英语翻译,20考研复试英语面试最强攻略,都是干货!

原标题&#xff1a;20考研复试英语&面试最强攻略&#xff0c;都是干货&#xff01;考研初试千辛万苦通过&#xff0c;成功就在眼前&#xff0c;可是偏偏中间还有复试英语这个拦路虎&#xff0c;复试中的英语环节每年让不少同学都很紧张&#xff0c;要想对答如流&#xff0c…

克隆虚拟机启动网卡提示错误 Device eth0 does not seem to be present, delaying initialization...

错误原因&#xff1a; 克隆的Linux系统在新的机器上运行&#xff0c;新服务器网卡物理地址已经改变。而/etc/udev/rules.d/70-persistent-net.rules这个文件确定了网卡和MAC地址的信息之间的绑定&#xff0c;克隆后的网卡的MAC已经发生了变化&#xff0c;所以导致系统认为网络设…

启动图一键生成工具_一键即运行!清华团队推出图深度学习工具包CogDL v0.1

一行代码命令可以做什么&#xff1f;“一行命令可以实现‘一条龙’运行实验。”访问 http://github.com/THUDM/cogdl 一键体验&#xff01;近年来&#xff0c;结构化数据的表示学习备受业界关注与热捧&#xff0c;图神经网络成为处理相关工作的有力工具&#xff0c;基于随机游走…

[转]GCC 命令行详解 -L 指定库的路径 -l 指定需连接的库名

1。gcc包含的c/c编译器gcc,cc,c,g,gcc和cc是一样的&#xff0c;c和g是一样的&#xff0c;(没有看太明白前面这半句是什么意思:))一般c程序就用gcc编译&#xff0c;c程序就用g编译2。gcc的基本用法gcc test.c这样将编译出一个名为a.out的程序gcc test.c -o test这样将编译出一个…

用计算机算判定系数,使用系数

使用系数是设备的使用时间与允许使用时间的比值。通常以一年累积的时间为计算范围。使用系数x年使用小时基数年使用小时数。例如&#xff0c;一台电机每天工作八小时&#xff0c;一年50周&#xff0c;那么一年电机工作的时候是2000小时。如果电机是连续工作制&#xff0c;一年有…

python2 openpyxl 复制excel内容到新的excel文件中 告警问题

该方法。由上海悠悠提供。可关注上海-悠悠的博客园def CopyExcel(Excelpath1,Excelpath2):#新建excelwb2openpyxl.Workbook()wb2.save(Excelpath2)print(新建成功)#读取数据wb1 openpyxl.load_workbook(Excelpath1)wb2 openpyxl.load_workbook(Excelpath2)sheets1 wb1.get_s…

工业机器人 扬州 江都_扬州市14家企业获批2019年江苏省示范智能车间

近日&#xff0c;我省正式发布2019年江苏省示范智能车间名单&#xff0c;所谓智能车间&#xff0c;是指将机器人、智能设备、信息技术三者在制造过程中全流程融合&#xff0c;实现自动决策、精确执行命令、精益管理。2019年&#xff0c;扬州市潍柴扬柴、新联汽车、江淮汽车等14…

超级强大的心理定律~~!你可以变成你想要的样子!~

这是转载的一篇文章。1、当你对某件事情抱着百分之一万的相信&#xff0c;它最后就会变成事实。 2、期望定律 期望定律告诉我们&#xff0c;当我们怀着对某件事情非常强烈期望的时候&#xff0c;我们所期望的事物就会出现。 3、情绪定律 情绪定律告诉我们&#xff0c;人百分之百…

学材分析计算机一体化,计算机一体化教学的体会

计算机一体化教学的体会摘要目前计算机教学没有摆脱传统的课程教学模式&#xff0c;虽然在教学中存在实训教学的环节&#xff0c;但仍偏重于理论化知识的完整灌输&#xff0c;导致理论与实践没有融为一体。一体化教学模式打破了传统的理论与实践教学的界限&#xff0c;是解决专…

pcb设计单点接地示意图_答案:关于PCB 的EMC设计知识考卷

(评分标准:本试卷作为培训效果评价依据,试卷满分为100分) ____________________________________________________________________________________________________________ 一、 判断题(每题2分) 1.塑料外壳产品的EMC性能只取决于PCB设计&#xff0c;与电缆的位置和PCB之间的…

Http、TCP/IP协议与Socket之间的区别

https://blog.csdn.net/done58/article/details/50996680转载于:https://www.cnblogs.com/654321cc/p/8968479.html

蚂蚁上树

蚂蚁上树原料&#xff1a;猪瘦肉100克、粉丝100克调料&#xff1a;酱油15克&#xff0c;盐1克&#xff0c;料酒10克&#xff0c;味精1克&#xff0c;葱、姜各5克&#xff0c;湿淀粉25克。制法&#xff1a;(1)将猪肉切成绿豆大小的粒。粉丝用热水泡好。葱、姜切末。(2)炒锅中放油…