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. (转)UnityVS(Visual Studio Tools For Unity)的安装与使用

    UnityVS(Visual Studio Tools For Unity)的安装与使用   一些废话 Unity 的开发者们,尤其是微软系的Unity开发者们,用Mono是不是烦死了?你是不是跟我一 ...

  2. 深入剖析Android音频之AudioTrack

    播放声音能够用MediaPlayer和AudioTrack,两者都提供了java API供应用开发人员使用.尽管都能够播放声音.但两者还是有非常大的差别的.当中最大的差别是MediaPlayer能够播 ...

  3. Pinger

    import java.io.IOException;import java.io.InputStreamReader;import java.io.LineNumberReader;import j ...

  4. STM8S AD转换

    //不说那么多了,直接上程序 void ADC1_DeInit(void) { ADC1->CSR = ADC1_CSR_RESET_VALUE; ADC1->CR1 = ADC1_CR1 ...

  5. ZH奶酪:AngularJS判断checkbox/复选框是否选中并实时显示

    最近做了一个选择标签的功能,把一些标签展示给用户,用户选择自己喜欢的标签,就类似我们在购物网站看到的那种过滤标签似的: 简单的效果如图所示: 首先看一下html代码: <!DOCTYPE htm ...

  6. MySQL Cluster配置文件-SQL节点4G内存

    # Example MySQL config file for large systems. # # This is for a large system with memory = 512M whe ...

  7. HDU 4902 Nice boat 成段线段树

    操作1 的时候标记deng[rt]表示以下一段数都是与当前节点的值同样 下次操作2时直接对有deng标记的节点gcd更新 (可能还能够更简单) #include <stdio.h> #in ...

  8. PHP $_POST

    $_POST 变量用于收集来自 method="post" 的表单中的值. $_POST 变量 $_POST 变量是一个数组,内容是由 HTTP POST 方法发送的变量名称和值. ...

  9. javascript 跳出(终止)forEach循环

      javascript 跳出(终止)forEach循环 CreateTime--2018年4月23日17:58:12 Author:Marydon 报错信息: 解决方案: javascript 跳出 ...

  10. OpenGL学习(hello)

    #include <gl/glut.h> void display(void) { glClear(GL_COLOR_BUFFER_BIT); // 清除颜色缓冲以及深度缓冲 glColo ...