#ifndef __EFFECTMGR_H__
#define __EFFECTMGR_H__ #include "GameFrameHead.h" namespace cocos2d
{
class CCFiniteTimeAction;
} class GAMEFRAME_API CEffectMgr
{
public:
enum ActionType
{
_Act_Sequence = , //顺序执行
_Act_Spawn = , //同时执行
}; enum Action
{
_CCMoveTo = ,
_CCMoveBy = ,
_CCJumpTo = ,
_CCJumpBy = ,
_CCBezierBy = ,
_CCScaleTo = ,
_CCScaleBy = ,
_CCRotateTo = ,
_CCRotateBy = ,
_CCBlink = ,
_CCTintTo = ,
_CCTintBy = ,
_CCFadeTo = ,
_CCFadeIn = ,
_CCFadeOut = ,
}; public:
~CEffectMgr();
static CEffectMgr* getInstance();
static void destroy(); cocos2d::CCFiniteTimeAction* getAction(const char* psKey); private:
CEffectMgr();
private:
static CEffectMgr* g_pEffectMgr; }; #endif //__EFFECTMGR_H__
#include "EffectMgr.h"
#include "Config.h"
#include "XCommon.h" CEffectMgr* CEffectMgr::g_pEffectMgr = NULL; CEffectMgr::CEffectMgr()
{ } CEffectMgr::~CEffectMgr()
{ } CEffectMgr* CEffectMgr::getInstance()
{
if (!g_pEffectMgr)
{
g_pEffectMgr = new CEffectMgr();
}
return g_pEffectMgr;
} void CEffectMgr::destroy()
{
SAFE_DELETE(g_pEffectMgr);
} cocos2d::CCFiniteTimeAction* CEffectMgr::getAction( const char* psKey )
{
ActionInfo& actionInfo = *CConfig::getInstance()->getActionInfoByKey(psKey);
vector<float> vecParam;
vector<string> vecBuf; CXCommon::split(actionInfo.strParm, string(" "), vecBuf);
for (int i = ; i < vecBuf.size(); i++)
{
vecParam.push_back(atof(vecBuf[i].c_str()));
} CCFiniteTimeAction* pAct = NULL;
switch(actionInfo.nAction)
{
case _CCMoveTo:
{
pAct = CCMoveTo::create(vecParam[], ccp(vecParam[], vecParam[]));
}
break;
case _CCMoveBy:
{
pAct = CCMoveBy::create(vecParam[], ccp(vecParam[], vecParam[]));
}
break;
case _CCJumpBy:
{
pAct = CCJumpBy::create(vecParam[], ccp(vecParam[], vecParam[]), vecParam[], vecParam[]);
}
break;
case _CCJumpTo:
{
pAct = CCJumpTo::create(vecParam[], ccp(vecParam[], vecParam[]), vecParam[], vecParam[]);
}
break;
case _CCBezierBy:
{
//暂未实现
}
break;
case _CCScaleTo:
{
pAct = CCScaleTo::create(vecParam[], vecParam[], vecParam[]);
}
break;
case _CCScaleBy:
{
pAct = CCScaleBy::create(vecParam[], vecParam[], vecParam[]);
}
break;
case _CCRotateTo:
{
pAct = CCRotateTo::create(vecParam[], vecParam[]);
}
break;
case _CCBlink:
{
pAct = CCBlink::create(vecParam[], vecParam[]);
}
break;
case _CCTintTo:
{
pAct = CCTintTo::create(vecParam[], vecParam[], vecParam[], vecParam[]);
}
break;
case _CCTintBy:
{
pAct = CCTintBy::create(vecParam[], vecParam[], vecParam[], vecParam[]);
}
break;
case _CCFadeTo:
{
pAct = CCFadeTo::create(vecParam[], vecParam[]);
}
break;
case _CCFadeIn:
{
pAct = CCFadeIn::create(vecParam[]);
}
break;
case _CCFadeOut:
{
pAct = CCFadeOut::create(vecParam[]);
}
default:
{
CCLog("error: action creation fails!");
}
break;
} ASSERT(pAct);
return pAct;
}

CEffectMgr类的更多相关文章

  1. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  2. C++ 可配置的类工厂

    项目中常用到工厂模式,工厂模式可以把创建对象的具体细节封装到Create函数中,减少重复代码,增强可读和可维护性.传统的工厂实现如下: class Widget { public: virtual i ...

  3. Android请求网络共通类——Hi_博客 Android App 开发笔记

    今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...

  4. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  5. ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core

    背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供, ...

  6. .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类

    .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...

  7. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  8. PHP-解析验证码类--学习笔记

    1.开始 在 网上看到使用PHP写的ValidateCode生成验证码码类,感觉不错,特拿来分析学习一下. 2.类图 3.验证码类部分代码 3.1  定义变量 //随机因子 private $char ...

  9. C# 多种方式发送邮件(附帮助类)

    因项目业务需要,需要做一个发送邮件功能,查了下资料,整了整,汇总如下,亲测可用- QQ邮箱发送邮件 #region 发送邮箱 try { MailMessage mail = new MailMess ...

随机推荐

  1. vxer

    Virus Maker 或者 Virus eXchanger 的简称,(有时候中文也叫做毒客),是一群追求完美.极致代码的病毒程序员. 1.VXer简介: VXer热爱汇编,熟悉各种处理器架构,致力于 ...

  2. 如何更改postgresql的最大连接数

    改文件 postgresql.conf 里的 #max_connections=32 为 max_connections=1024 以及另外相应修改 share_buffer 参数.

  3. 【转】js-ES6学习笔记-Symbol

    原文:https://www.cnblogs.com/zczhangcui/p/6435652.html https://blog.mgechev.com/2017/09/16/developing- ...

  4. RS交叉表按照预定的节点成员排序

    需求:RS一个交叉表,显示所有(科室-职称-医生)的就诊量,但是针对同一个科室来说,该科室的主任执行报表首先需要第一个看到的是主任医师级别的工作量 效果如图: 得到这个需求后感觉很简单,就是根据职称排 ...

  5. xampp下载地址 一个集成的易于安装的WEB环境部署包

    XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包.这个软件包原来的名字是 LAMPP,但是为了避免误解,最新的几个版本就改名为 XAMPP 了.它可以在Windo ...

  6. [Algorithm] Array production problem

    Given an array of integers, return a new array such that each element at index i of the new array is ...

  7. Android程序怎么做单元测试

    如何进行Android单元测试 Menifest.xml中加入: <application>中加入: <uses-library android:name="android ...

  8. Caused by: java.lang.NumberFormatException: For input string: &quot;&quot;

    1.错误描写叙述 java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatEx ...

  9. UNIX网络编程读书笔记:recvmsg和sendmsg函数

    这两个函数是最通用的I/O函数.实际上我们可以把所有read.readv.recv和recvfrom调用替换成recvmsg调用.类似地,各种输出函数调用也可以替换成sendmsg调用. #inclu ...

  10. Windows Store GIF player 诞生记

    在Win8上面,Image source切换的时候有bug.当我们短时间定时切换的时候,Image不能正常地显示对应的图片.Image控件又不支持GIF播放,所以GIF图片的播放就是一个非常头痛的问题 ...