1.此工具类的目的是为了方便运行动画。使用TexturePackerGUI工具能够导出plist文件和png图片,这里我演示样例图片叫bxjg.plist和bxjg.png

//////////////////////////////////////.h文件

#ifndef _AnimateUtil_H_

#define _AnimateUtil_H_

#include "cocos2d.h"

using namespace cocos2d;

using namespace std;

class AnimateUtil//动画工具类

{

public:

//依据文件名称字前缀创建动画对象                         名称   播放的间隔    是否循环播放   

static Animation * createWithSingleFrameName(const char * name, float delay, int Loops);

//依据文件名称字前缀创建动画对象,指定动绘图片数量        名称    图片数量  播放的间隔  是否循环播放 

static Animation * createWithFrameNameAndNum(const char * name, int num, float delay, int Loops);

};

#endif

/////////////////////////////////.cpp文件

#include "AnimateUtil.h"





Animation * AnimateUtil::createWithSingleFrameName(const char * name, float delay, int Loops)

{

/*将图片载入到精灵帧缓冲池*/

SpriteFrameCache *frameCache = SpriteFrameCache::getInstance();

Vector<SpriteFrame * > frameVec;

SpriteFrame * frame = NULL;

int index = 1;//小图片数量

do 

{

//从SpriteFrame缓冲池获取SpriteFrame对象

frame = frameCache->getSpriteFrameByName(StringUtils::format("%s%d.png", name, index++));

//不断获取spriteFrame对象,直到获取的值为NULL

if (frame == NULL)

{

break;

}

frameVec.pushBack(frame);

} while (true);

//使用SpiteFrame列表创建动画对象

Animation * animation = Animation::createWithSpriteFrames(frameVec);

animation->setLoops(Loops);//设置是否循环

animation->setRestoreOriginalFrame(true);

animation->setDelayPerUnit(delay);//设置动画间隙

return animation;

}





Animation * AnimateUtil::createWithFrameNameAndNum(const char * name, int num, float delay, int Loops)

{

SpriteFrameCache * frameCache = SpriteFrameCache::getInstance();





SpriteFrame * frame = NULL;

Vector<SpriteFrame *> frameVec;

int index = 1;

for (int  i = 1; i <= num; i++)

{

frame = frameCache->getSpriteFrameByName(StringUtils::format("%s%d.png", name, index++));

if (frame ==NULL)

{

break;

}

frameVec.pushBack(frame);

}

Animation * animation = Animation::createWithSpriteFrames(frameVec);

animation->setLoops(Loops);

animation->setRestoreOriginalFrame(true);

animation->setDelayPerUnit(delay);

return animation;

}

Cocos2d-x动画工具类的更多相关文章

  1. Android两个页面之间的切换效果工具类

    import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; ...

  2. 实用工具类--第三方开源--Lazy

    下载地址 :https://github.com/ddwhan0123/Lazy 工具 描述 AnimationUtils 动画工具类 AppUtils APP相关信息工具类 AssetDatabas ...

  3. iOS开发--QQ音乐练习,旋转动画的实现,音乐工具类的封装,定时器的使用技巧,SliderBar的事件处理

    一.旋转动画的实现 二.音乐工具类的封装 -- 返回所有歌曲,返回当前播放歌曲,设置当前播放歌曲,返回下一首歌曲,返回上一首歌曲方法的实现 头文件 .m文件 #import "ChaosMu ...

  4. Android开源项目大全 - 工具类

    主要包括那些不错的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他. 一.依赖注入DI 通过依赖注入减少Vie ...

  5. Android 开源控件与常用开发框架开发工具类

    Android的加载动画AVLoadingIndicatorView 项目地址: https://github.com/81813780/AVLoadingIndicatorView 首先,在 bui ...

  6. Android快捷便利但不常被使用的原生工具类

    Android快捷便利但不常被使用的原生工具类 Android SDK原生 API中,有一些常用的工具类,运用得当可以省事省力省时,何况还是Android官方提供的,现在收集整理一些出来.DateUt ...

  7. Android 常见工具类封装

    1,MD5工具类: public class MD5Util { public final static String MD5(String s) { char hexDigits[] = { '0' ...

  8. 自己封装的工具类,使用原生SwipeRefreshLayout+RecycleView实现下拉刷新和加载更多

    实现SwipeRefreshLayout+RecycleView实现刷新 在你的xml文件里写上如下代码: <android.support.v4.widget.SwipeRefreshLayo ...

  9. 拍照、本地图片工具类(兼容至Android7.0)

    拍照.本地图片工具类:解决了4.4以上剪裁会提示"找不到文件"和6.0动态授予权限,及7.0报FileUriExposedException异常问题. package com.hb ...

随机推荐

  1. Android -- VelocityTracker

    VelocityTracker 主要应用于touch event, VelocityTracker通过跟踪一连串事件实时计算出当前的速度. 方法 //获取一个VelocityTracker对象, 用完 ...

  2. 以log(n)的时间求矩形内的点

    设想这么一个简单的问题,在一个平面上有n个点,给定一个矩形,问位于矩形内的点有哪些. 这个问题的简单思路非常简单,每次遍历所有点,看其是否在给定的矩形中.时间复杂度呢?单次查询的时间就是一次遍历的时间 ...

  3. Pylons架构网站开发从0到1

    首先说明下这里的从0到1指的是从没有听说过pylons到开发出一个看上去还不错的网站.一个月前,我没有听说过也不知道什么是pylons,HTML只知道一些标签,JavaScript也不怎么懂,由于只倾 ...

  4. Ofstream的endl不好用怎么回事?

    用endl,std::endl, "\n"都不好用,不输出换行,怎么回事? [解决方法] If you're writing a text file, you shouldn't ...

  5. 4. Add override methods to class

    1. In the class, right click 2. "Scource" 3. "Override / Implement Menthods" 4. ...

  6. Drupal Working with nodes, content types and fields

    一个大概的总结,便于对接下来的学习进行理解和运行 在使用Drupal过程中.站点中的内容的不论什么一个部分都是一个节点(node),而每一个节点中又包括了一些默认的字段(fields). 值得说明的是 ...

  7. CheeseZH: Stanford University: Machine Learning Ex2:Logistic Regression

    1. Sigmoid Function In Logisttic Regression, the hypothesis is defined as: where function g is the s ...

  8. miniupnpc

    upnp端口映射: http://bbs.csdn.net/topics/70382968 UPnP端口映射实现过程(二) http://blog.csdn.net/jiuaiwo1314/artic ...

  9. 算法笔记_206:第五届蓝桥杯软件类决赛真题(Java语言A组)

    目录 1 海盗分金币 2 六角幻方 3 格子放鸡蛋 4 排列序数 5 幂一矩阵 6 供水设施    前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 海盗分金币 有5个海盗,相约进行一次帆船比赛. 比 ...

  10. 〖Linux〗Clang/Clang++ for Android Binary/NDK build(二进制可执行文件/NDK编译)

    #1. 下载并安装NDK(解压即可,目前最新版是r9c) http://developer.android.com/tools/sdk/ndk/index.html #2. 安装NDK独立编译工具 c ...