CEffectMgr类
#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类的更多相关文章
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- C++ 可配置的类工厂
项目中常用到工厂模式,工厂模式可以把创建对象的具体细节封装到Create函数中,减少重复代码,增强可读和可维护性.传统的工厂实现如下: class Widget { public: virtual i ...
- Android请求网络共通类——Hi_博客 Android App 开发笔记
今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core
背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供, ...
- .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类
.NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- PHP-解析验证码类--学习笔记
1.开始 在 网上看到使用PHP写的ValidateCode生成验证码码类,感觉不错,特拿来分析学习一下. 2.类图 3.验证码类部分代码 3.1 定义变量 //随机因子 private $char ...
- C# 多种方式发送邮件(附帮助类)
因项目业务需要,需要做一个发送邮件功能,查了下资料,整了整,汇总如下,亲测可用- QQ邮箱发送邮件 #region 发送邮箱 try { MailMessage mail = new MailMess ...
随机推荐
- 一个 forceLayout() 和 requestLayout() 的测试
两个view: 一个是系统默认的FrameLayout, A 一个是自己自定义的MyView extends View,重载了onMeasure函数(): B @Override protected ...
- iOS:带主标题、副标题、图像类型的表格视图UITableView
制作一个通讯录,包括姓名.电话.头像,将表格视图类型设置为UITableViewCellStyleSubtitle 效果图: //创建一个联系人的类,初始化数据 在视图控制器中实现表格内容的显示 #i ...
- mac下的一些命令
1.显示隐藏文件 defaults write com.apple.finder AppleShowAllFiles -bool true 2.隐藏隐藏文件 defaults write com.ap ...
- webapp开发基础
1.首先我们来看看webkit内核中的一些私有的meta标签,这些meta标签在开发webapp时起到非常重要的作用 <meta content="width=device-wid ...
- Microsoft Visual C++ 14.0 is required问题的解决或warning: Debugger speedups using cython not found
今天在下载了 python3.64版本的安装后运行爬虫程序报错: warning: Debugger speedups using cython not found. Run '"C:\Py ...
- springmvc跨域+token验证
1)app后台跨域设置 2)拦截器中设置http报文header中token 3)token的生成实现 ==================================== ...
- source insight中{}自动缩进的调整
默认的自动缩进非常难看,解决方法如下: 菜单栏 -> Options -> document options ->点击右侧的 “Auto Indent...”按钮 将右侧" ...
- keepalived 使用注意事项
1.启动用service keepalived start/stop 比直接 /sbin/keepalived start/stop要好,貌似解决了master停止了keepalived服务而back ...
- Python 更新set
更新set 由于set存储的是一组不重复的无序元素,因此,更新set主要做两件事: 一是把新的元素添加到set中,二是把已有元素从set中删除. 添加元素时,用set的add()方法: weekday ...
- MySQL InnoDB简介
从MySQL 5.5版本开始InnoDB已经是默认的表存储引擎 InnoDB 1:完全支持ACID 2:支持行级锁 3:支持MVCC 4:支持外键 MySQL 5.1版本 MySQL 5.1版本之前, ...