***************************************转载请注明出处:http://blog.csdn.net/lttree******************************************

前言:

这次的东西,事实上是在做完2048后,我有个Flash想用。

就像,天天系列。开头会有 ”提米“ 的叫声+动画, 是不是感觉非常带感。

之前。做第一个游戏的时候,有做一套78帧的Flash,

可是当时不会用,如今正好拿过来用了。嘿嘿~

正文:

这次样例,就拿我这几天想做的 FlappyBird 的小鸟为例吧:

1.首先,我们先来做须要的资源。

这个有三个层次(眼下我知道的)

① 载入每一个图片

② 把全部图片压缩到一张图片中。然后切割取出。

③借助于plist文件与png共同取出图片。

前两种,比較简单。并且效率不是非常高,我就直接用这三者最好的,plist+png

事实上,plist通常是用在mac上的,

在windows制作plist能够用 TexturePacker,

(能够在这里下载:https://www.codeandweb.com/texturepacker/download )

很方便的一个工具。

安装完成,打开,须要选择你的引擎,当然我们选择的是cocos2d的:

打开以后,会出现例如以下界面:

这个工具的使用细节,我不是非常懂= =。

具体的能够问问度娘。

我仅仅知道,点上面那个button,加入,你所须要压缩在PNG里的图片:

这个技巧不须要我多说了吧:

按住Ctrl 能够单个多选,

按住Shift能够连续多选。

选出图片。并把他们增加进来。

假设没有图片,拿以下的凑合一下吧:

然后点击 左上角 的Filebutton:

然后,在下拉的菜单中,选  Public sprite sheet 。然后就选择存放 PNG和PLIST的文件夹:

先是plist文件夹,然后是PNG文件夹。最好两个文件名称是一样的。

接着,就会给你输出出来了:

OK,你就能够到存放的地方看你所生成的两个文件了。

2.接下来就是Cocos2d-x  中调用部分了。

把两个文件(plist和png) 拷贝到Resource 里面。

在VS2012 中 右键点击Resource 目录。加入->现有项,将两者加入进来。

这里。我就直接在HelloWorld界面,放小鸟飞行动画了。

在HelloWorldScene.cpp的Init函数中增加,例如以下代码:

// ①创建缓存,将图片读取进来CCSpriteFrameCache * cache = CCSpriteFrameCache::sharedSpriteFrameCache();  cache -> addSpriteFramesWithFile("hero_bird.plist");// ②创建第一帧,设置位置,增加到当前场景CCSprite *sp = CCSprite::createWithSpriteFrameName("bird_hero_01.png");sp -> setPosition(Point(visibleSize.width/3,visibleSize.height/2));this -> addChild( sp );// ③创建集合,存每一张图片Vector< SpriteFrame* > sfme = Vector< SpriteFrame* >::Vector();char str[20] = {0};for( int i = 1 ; i < 4 ; ++i ){// ④ 获取图片名字,增加到集合中sprintf(str,"bird_hero_%02d.png",i);SpriteFrame *fname = cache -> spriteFrameByName( str );sfme.pushBack( fname );}// ⑤ 创建动画,设置播放速度CCAnimation *animation = CCAnimation::createWithSpriteFrames( sfme , 0.1f );sp -> runAction ( CCRepeatForever::create(CCAnimate::create(animation )));

来解释一下:

前面①、② 无需多说,

③,这个曾经用CCArray或者Array,

如今不行了,反正我是3.0和3.2都不能用Array。会在⑤

createWithSpriteFrames出问题,

由于追到这个函数定义。能够发现:

Animation* Animation::createWithSpriteFrames(const Vector<SpriteFrame*>& frames, float delay/* = 0.0f*/, unsigned int loops/* = 1*/)
{Animation *animation = new Animation();animation->initWithSpriteFrames(frames, delay, loops);animation->autorelease();return animation;
}

它的第一个參数必须为:

const Vector<SpriteFrame*>& frames

这点就要和  之前版本号不同,要注意一下。

然后是 ④

这个获取图片名字。为什么是:

sprintf(str,"bird_hero_%02d.png",i); 呢?

由于%02d,能够保证,取i后,不够的用0补足。

比方,假设是%d,

当i等于1, 获取的名字是: bird_hero_1

而%02d。获取名字是: bird_hero_01

Ok,执行一下,就能够发现小鸟在飞翔啦~

PS:怎样作为一个开场动画呢?

我的方法就是在上述代码后,加一句计划任务。

多长时间后的跳转:

this->scheduleOnce(schedule_selector(InkmooFlash::jumpToMain), 4);

这样,算好播放一帧多久。总共多少帧,就能够做成开场动画啦~。~

***************************************转载请注明出处:http://blog.csdn.net/lttree******************************************

版权声明:本文博主原创文章,博客,未经同意不得转载。

转载于:https://www.cnblogs.com/blfshiye/p/4797222.html

Cocos2d-x 3.x plist+png 做动画相关推荐

  1. cocos2d-x使用TexturePacker打包图片及使用生成的plist文件创建精灵动画

    在使用TexturePacker打包工具之前先对动画的每一帧图片命名,我这里选取的cocos2d-x实例程序里面的图片,为了方便只提取了前面4帧的图片 然后打开安装好的TexturePakcer,该工 ...

  2. 用silverlight做动画-相机

    用silverlight做动画-相机 适合初学者学习 做一个相机的动画 和做flash动画一样,准备好素材 将素材放入项目中 开始正式制作前为了方便以后重用,就把这个动画做成usercontrol(和 ...

  3. [UWP]用Shape做动画(2):使用与扩展PointAnimation

    上一篇几乎都在说DoubleAnimation的应用,这篇说说PointAnimation. 1. 使用PointAnimation 使用PointAnimation可以让Shape变形,但实际上没看 ...

  4. java 图片动画_java在窗口中添加图片做动画,怎么一闪一闪的?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 视频来自:优酷 在java中添加图片做动画效果,怎么一闪一闪的运动啊?怎样才能让它不闪的连续运动呢? 下面是代码,代码项目project里有两个类,一个是 ...

  5. paraView做动画(终极教程)

    paraView做动画(终极教程) ① 效果最好的方法是: file菜单下的save animation 按钮,将每一针都输出成图片. 把导出的图片连成动画 推荐使用:EnVe和Demo3D Vide ...

  6. 关于iOS里的做动画方法的差别与注意事项

    CoreAnimation与UIView.animation... 这两个方式的主要差别在于,前者如果不主动设置,那么在动画做完以后,会恢复原状. 后者则不会,动画做完后是什么样,控件就是什么样. U ...

  7. 沿着path路径做动画

    沿着path路径做动画 路径 效果 源码 // // ViewController.m // PathAnimation // // Created by YouXianMing on 16/1/26 ...

  8. python能制作ppt动画效果吗_你听说过Python可以做动画吗

    如果Python可以做动画 用Python来写动画,有这么神奇吗? 这个网站的效果图如下,分为两个区域,画布区用于显示动画,代码区编写代码(不用安装任何软件哦~) image.png 零基础的人可以学 ...

  9. unity2D动画-角色切片与2DAnimation插件做动画

    unity2D动画-角色切片做动画 写在前面的话 开发环境与准备 用角色切片做动画 终于可以Key动画了 2DAnimation插件做动画 总结 写在前面的话 更新 建议有复杂2D动画需求的话用spi ...

最新文章

  1. 清华特奖答辩前10出炉,两名CS学生3篇顶会一作,有人周读3000页英文论文!
  2. OpenCV改变图像的对比度和亮度
  3. 微软超融合私有云测试08-SCVMM部署之SQL Server与前置条件安装
  4. vue动态跟新layui的select_vue+layui实现select动态加载后台数据的例子
  5. 计算机组织菜单在哪里,1,计算机显示菜单在哪里
  6. 华为内部存储转sd卡_华为tit al00怎么将手机存储内容转移到sd卡
  7. C语言和设计模式(状态模式)
  8. linux新建自定义命令,Linux 创建自定义命令
  9. [转载]Badboy使用教程
  10. Spring Cloud随记---分布式配置中心初探--一个单节点的配置中心
  11. iOS:fishhook原理分析
  12. 史上最详细的F450四轴装机实例(无名官方推荐的)
  13. python正则表达式--爬取百度文库内容
  14. h3c无线控制器ac配置
  15. php 车牌号限号,机动车限行尾号今天起轮换 周一至周五分别限行 4 和 9、5 和 0、1 和 6、2 和 7、3 和 8...
  16. eyoucms使用入门 一
  17. 王者荣耀: 史上最长对局, 无法打破的神话英雄, 10小时4千人头
  18. 全球2%高智商天才必测脑力题!却只有1%的人,能在5分钟内全部做对!
  19. 使用Java-Hanlp训练CRF模型
  20. python3多线程下载图片_Python3多线程爬取meizitu的图片

热门文章

  1. IntelliSense: const char * 类型的实参与 LPCTSTR 类型的形参不兼容
  2. MATLAB 基本数据类型和调用方式
  3. django--模板继承、组件、自定义标签
  4. oracle误删scott文件如何恢复
  5. 【Codeforces 986B】Petr and Permutations
  6. [moka同学笔记]PHP操作Redis收集
  7. linux中chmod与chown两个命令详解
  8. 封装对MongoDB数据库的增删改查访问方法(基于MongoDB官方发布的C#驱动)
  9. AUTOCAD自学教程一
  10. Oracle spatial 周边查询SQL