Cocos2dx 中的CCCallFunc,CCCallFuncN,CCCallFuncND,CCCallFuncO比较
qinning199原创,欢迎转载。转载请注明:http://www.cocos2dx.net/?p=27
首先看一张图片,表示了CCCallFunc的继承关系:
1、CCCallFunc,回调,调用不带参数的函数:
CCSequence::actions(CCCallFunc::actionWithTarget(this, callfunc_selector(ExtendActionLayer::onCallBack1)));
void ExtendActionLayer::onCallBack1()
{
flight->runAction(CCTintBy::actionWithDuration(0.5f, 255, 0, 255));
}
2、CCCallFuncO,回调,O表示CCObject,CCCallFunco可以带CCObject参数的函数
CCSequence::actions(CCCallFuncO::actionWithTarget(this, callfuncO_selector(ExtendActionLayer::onCallBack2), CCInteger::create(2)); void ExtendActionLayer::onCallBack2(CCObject* data)
{
CCInteger* num = dynamic_cast<CCInteger*>(data);
pSender->runAction(CCTintBy::actionWithDuration(num->getValue(), 255, 0, 255));
}
3、CCCallFuncN,回调,N表示CCNode,表示可以传递Node*类型
CCSequence::actions(CCCallFuncN::actionWithTarget(this, callfuncN_selector(ExtendActionLayer::onCallBack3)));
void ExtendActionLayer::onCallBack3(CCNode* pSender)
{
// 在这个例子里,pSender就是flight,因为是他执行了那个actionF
pSender->runAction(CCTintBy::actionWithDuration(1.0f, 255, 0, 255));
}
4、CCCallFuncND,回调,ND表示CCNode和Data,可以传递对象本身和一个void*类型参数,void*表示可以是任意类型的参数
CCSequence::actions(CCCallFuncND::actionWithTarget(this, callfuncND_selector(ExtendActionLayer::onCallBack4), (void *)2)); void ExtendActionLayer::onCallBack4(CCNode* pSender, void* pData)
{
pSender->runAction(CCTintBy::actionWithDuration(static_cast<float>((int)pData), 255, 0, 255));
}
Cocos2dx 中的CCCallFunc,CCCallFuncN,CCCallFuncND,CCCallFuncO比较的更多相关文章
- cocos2d-x中CCCallFunc CCCallFuncN CCCallFuncND的区别和使用示例
转自:http://xiandanboke.com.cn/cocos2d-xcccallfunc.html CCCallFunc CCCallFuncN CCCallFuncND的区别和使用 CCCa ...
- CCCallFunc CCCallFuncN CCCallFuncND的区别和使用
CCCallFunc CCCallFuncN CCCallFuncND都用来创建带有回调函数的动作,区别主要在于回调函数是否带有参数 CCCallFunc是执行对应的回调函数,其中回调函数不可带参数. ...
- schedule CCCallfunc CCCallfuncN CCCallfuncND
schedule(schedule_selector(HelloWorld::step), 1.0f); void HelloWorld::step(float dt) { CCLog("d ...
- CCCallFunc, CCCallFuncN, CCCallFuncND 三者的区别
今天学习过程中,自己敲了一个例子,结果在执行Action的时候出现了错误.经排查发现是CCCallFunc使用的问题,应该使用CCCallFuncN,然后搜了下他们的区别,才知道,是因为有一个参数的问 ...
- cocos2d-x中的Tiled地图
cocos2d-x中的瓦片地图是通过tiledMap软件制作的,存档格式是.tmx格式.此软件的使用步骤简单总结如下: (1)制作瓦片地图 1 打开软件,软件界面如下图. 2. 新建地图(文件-> ...
- Cocos2dx中线程优先级
Cocos2dx中线程优先级问题 不论是ios还是android,遇到耗时的任务都要另起线程处理,否则程序不能及时用户的反馈.游戏中如果一圈循环不能在1/frameRate(帧率是30则1/30)秒内 ...
- 【Cocos2d-x游戏开发】Cocos2d-x中的弱联网技术
在上一篇博客中,我们一起学习了如何在Cocos2d-x中存储数据和读取信息,本篇博客我们将一起讨论和数据存储同样重要的联网技术. 一.弱联网技术介绍 在网络游戏中许多重要的功能都需要网络连接,而根据需 ...
- 【Cocos2d-x游戏开发】Cocos2d-x中的数据存储技术
一.引言 数据存储和网络功能可以说是一款游戏中必不可少的功能,如果一款游戏不能保存进度那么它的可玩性必然大打折扣(试想一下,玩家辛辛苦苦玩了一整天的游戏,结果退出时告诉人家不能保存关卡信息,你明天还得 ...
- cocos2dx 中使用的一些C++ 11 特性
0. placeholder 头文件:<functional> namespace: placeholder placeholder 就是一堆帮助bind占参数位置的东西,名字分别为 _ ...
随机推荐
- URL组成介绍
1.2. HTTP request ----------------- First, let's consider this HTTP request : Line Contents number 1 ...
- C# 多线程 异步加载 窗体
C# 多线程 异步加载 窗体 分类: C#2014-05-28 16:57 1286人阅读 评论(0) 收藏 举报 异步加载 我们在使用 windowform 编程的时候,我们或许可能会越到,各种在窗 ...
- 三校联考 Day3
三校联考 Day3 大水题 题目描述:给出一个圆及圆上的若干个点,问两个点间的最远距离. solution 按极角排序,按顺序枚举,显然距离最远的点是单调的,线性时间可解出答案. 大包子的束缚 题目描 ...
- Connect the Cities(prime)
Connect the Cities Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) ...
- Bellman 算法
这道题目事实上就是在求有没有正环.与求负环的差别就是要不断的更新值,可是这个值要变大.而不是变小. Currency Exchange Time Limit: 1000MS Memory Limi ...
- jquery 设置asp:dropdownlist 选中项
$("#ddlPro").find('option').each(function () { this.selected = (this.text == dlprom); });
- %1 不是有效的 Win32 应用程序
客户环境windows server 2008,iis 6.0. 站点配置与以往并无差别,更新类库后出现“%1 不是有效的 Win32 应用程序”错误,如下图: 系统登录页面可以正常加载,登录过程中出 ...
- JS赋值传递的问题
根据值的类型是基本类型值还是复杂类型的值在传递时会有不同. JS函数的参数传递是按值传递,基本类型值传递的是副本,复杂类型值传递的是引用.从而会影响原来的值,不会改变原来的复制前的引用. functi ...
- tcp窗口滑动以及拥塞控制
转自:http://blog.chinaunix.net/uid-26275986-id-4109679.html TCP协议作为一个可靠的面向流的传输协议,其可靠性和流量控制由滑动窗口协议保证,而拥 ...
- Servlet 浅谈(三)
关于Session 关于http协议后面会有一系列文章专门介绍.这里就大概了解一下:首先需要知道一点:HTTP是无状态的. 什么是无状态呢? 客户与服务器建立连接.发出请求.得到响应.关闭连接.整个流 ...