CCCallFunC家族

STM32与威纶通触摸屏RS485通信实战:Modbus RTU协议与避坑指南 在工业自动化与嵌入式系统开发中,串行通信是实现设备间数据交换的基础技术。RS485总线凭借其差分信号传输、抗干扰能力强、支持多点通信及长距离传输等特性,成为工业现场广泛应用的物理层标准。其核心原理是利用一对双绞线进行平衡传输,有效抑制共模噪声。在协议层,Modbus RTU作为开放、简洁的主从式应用层协议,定义了统一的数据模型(如线圈、寄存器)和功能码,极大简化了不同厂商设备间的互操作性。结合STM32微控制器的UART外设与威纶通(Weinview)人机界面(HMI),可以构建稳定可靠的监控与控制系统。本 阅读详情

当我们需要在一个动作序列中某一个动作执行结束之后,调用某个函数用于执行一个任务的时候,我们可以使用CCCallFunC家族函数。CCCallFunC是CCActionInstant类的子类。值得注意的是,虽然CCCallFunC家族函数是瞬时动作函数的子类,但是所谓的瞬时,也只是指函数调用的一瞬间,而关于函数内部怎么执行,耗用多久,则完全与瞬时没有任何关系。CCCallFunC家族函数可以将函数调用的过程封装成一个动作类,从而放入动作序列中以供我们调用。


HelloWorldScene.h如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "cocos2d.h"
class  HelloWorld :  public  cocos2d::CCLayerColor
{
public :
     // Method 'init' in cocos2d-x returns bool, instead of 'id' in cocos2d-iphone (an object pointer)
     virtual  bool  init();
     // there's no 'id' in cpp, so we recommend to return the class instance pointer
     static  cocos2d::CCScene* scene();
                                                                          
     //先声明四个动作的回调方发
     void  callBack();
     void  callNodeBack(CCNode* sender);
     void  callNodeBack(cocos2d::CCNode *sender,  void  * data);
     void  callObjectBack( CCObject * data);
     // preprocessor macro for "static create()" constructor ( node() deprecated )
     CREATE_FUNC(HelloWorld);
};
#endif // __HELLOWORLD_SCENE_H__



HelloWorldScene.cpp文件中的

boolHelloWorld::init()函数中加入如下代码:

1
2
3
4
5
6
7
8
9
10
11
if  ( !CCLayerColor::initWithColor(ccc4(255, 255, 255, 255)) )
    {
        return  false ;
    }
                                                            
    //CCCallFunc家族函数:当我们需要在一个动作完成之后需要调用某个函数时使用
                                                            
    CCSprite* player = CCSprite::create( "Icon.png" );
    player->setPosition(ccp(100, 100));
    this ->addChild(player);
    CCMoveTo* action = CCMoveTo::create(1, ccp(200, 200));



1
2
3
4
5
//CCCallFunc的功能非常简单,它只能简单地实现在动作序列中帮助我们调用一个函数的功能。
    CCCallFunc* call  = CCCallFunc::create( this , callfunc_selector(HelloWorld::callBack));
    //下面这行代码是创建一个动作序列
    CCFiniteTimeAction* seq = CCSequence::create(action,call,NULL);
    player->runAction(seq);


1
2
3
4
5
//CCCallFunc的回调函数
void  HelloWorld::callBack()
{
     CCLog( "CCCallFunc" );
}




1
2
3
4
//CCCallFuncN  既能够调用一个方法还能够将调用的对象传过去  这里的调用对象就是player  它是个精灵对象
     CCCallFuncN* callN = CCCallFuncN::create( this , callfuncN_selector(HelloWorld::callNodeBack));
     CCFiniteTimeAction* seq2 = CCSequence::create(action,callN,NULL);
     player->runAction(seq2);


1
2
3
4
5
6
//CCCallFuncN的回调函数
void  HelloWorld::callNodeBack(cocos2d::CCNode *sender)
{
     CCSprite* player = (CCSprite*) sender;
     CCLog( "%f" ,player->getPosition().x);
}



1
2
3
4
5
6
7
8
9
//先创建一个字典
     CCDictionary* dic = CCDictionary::create();
     dic->retain();
     dic->setObject(CCString::create( "zxcc" ), 1);
                               
     //CCCallFuncND可以传递一个任意数据类型  例如,我们可以传递一个字典
     CCCallFuncND* callND = CCCallFuncND::create( this , callfuncND_selector(HelloWorld::callNodeBack),( void *)dic);
     CCFiniteTimeAction* seq3 = CCSequence::create(action,callND,NULL);
     player->runAction(seq3);



1
2
3
4
5
6
7
8
//CCCallFuncND的回调函数
void  HelloWorld::callNodeBack(cocos2d::CCNode *sender,  void  * data)
{
     CCDictionary* dic = (CCDictionary*)data;
     CCString* str = (CCString*)(dic->objectForKey(1));
                           
       CCLog( "%s" ,str->getCString());
}




1
2
3
4
5
6
7
8
9
//我们创建一个精灵
     CCSprite* player2 = CCSprite::create( "player2.png" );
     player2->setPosition(ccp(300, 300));
     this ->addChild(player2);
     //在例子中我先移动一个精灵 ,再移动另一个精灵
    // CCCallFuncND传值的类型只能为CCObject类型
     CCCallFuncO* callO = CCCallFuncO::create( this , callfuncO_selector(HelloWorld::callObjectBack), player2);
     CCFiniteTimeAction* seq4 = CCSequence::create(action,callO,NULL);
     player->runAction(seq4);




1
2
3
4
5
6
7
8
//CCCallFuncO的回调方法
void  HelloWorld::callObjectBack(cocos2d::CCObject *data)
{
     CCSprite* player = (CCSprite*)data;
               
     player->runAction(CCMoveTo::create(1, ccp(1 ,90)));
             
}



代码例子: http://pan.baidu.com/share/link?shareid=611826954&uk=3189484501


本文出自 “7087095” 博客,请务必保留此出处http://7097095.blog.51cto.com/7087095/1228526

基于STM32L4XX、HAL库的BQ25713RSNR充电芯片驱动程序设计 define BQ25713_I2C_ADDR (0x6B << 1) // 7位地址为 0x6B,HAL库需要左移一位。// 示例:配置 CHARGE_OPTION_0 寄存器:使能充电,使能 ICO(输入电流优化)reg_data |= (EN_CHG_MASK | EN_ICO_MASK); 阅读详情

相关推荐

基于PyTorch的BP神经网络PID控制器动态调参实战

本文详细介绍了基于PyTorch的BP神经网络PID控制器动态调参实战,结合BP神经网络的自适应能力和PID控制算法的经典优势,实现工业控制中的高效参数调整。通过PyTorch实现BP-PID融合架构,包括网络设计、损失函数优化及动态调参技巧,显著提升控制性能,适用于温度控制、电机控制等场景。

weixin_29094775的博客 522

cocos2dx之CCCallFunc,CCCallFuncN,CCCallFuncND,CCCallFuncO

在CCCallFunc系列动作的4个类中,CCCallFunc调用的方法不包含参数,CCCallFuncN调用的方法包含一个CCNode*类型的参数,表示执行动作的对象。CCCallFuncND调用的方法包含两个参数,不仅有一个节点参数,还有一个自定义参数(CCNode*与void*)。CCCallFuncO调用的方法则只包含一个CCObject*类型的参数。 实际上,CCCallFunc系列动

专注,努力,勤奋 3754

光谱分布、光谱辐射通量密度与不同时间段分布光谱(图示)

1、光谱分布图 2 太阳辐射能量图 3、不同时间段的太阳分布光谱图 4、不同波长的光的能量分布主要区域 5、不同波段的使用场景

maopig的专栏 2万+

CCCallFunc CCCallFuncN CCCallFuncND的区别和使用

CCCallFunc系列动作包括: CCCallFunc: CCCallFuncN: CCCallFuncND: CCCallFuncO: 四个动作,用来在动作方法中进行方法的调用(之所以不是函数调用,是因为它们只能调用某个类中的实例方法,而不是调用普通的C函数)。 当某个对象执行CCCallFunc系列动作时,就会调用一个先前被设置好的方法,以完成某些特别的功

YUZHIBOYI的专栏 6840

ABB RobotStudio 和 S7-PLCSIM Advanced V5.0 搭建虚拟通信环境,实现 PLC 对机器人布尔量、数字量和模拟量的控制。

本教程详细介绍了如何利用ABB RobotStudio和S7-PLCSIM Advanced V5.0搭建虚拟通信环境,实现PLC对机器人的布尔量、数字量和模拟量控制。主要内容包括:在TIA Portal V20中配置PLC项目并编写通信程序;通过S7-PLCSIM Advanced创建虚拟PLC运行环境;在RobotStudio中设置机器人PROFINET通信;以及建立虚拟网络连接并进行功能测试。该方案适用于工业自动化虚拟调试,可显著降低现场调试风险。操作需注意软件版本兼容性、网络配置及信号映射准确性,最

CHUXUEZHE8210的博客 2519

基于TKVA与深度学习的量子点微型光谱仪光谱重建改进算法研究

本文提出了一种融合深度学习的改进TKVA算法(TKVA-DL),用于提升量子点微型光谱仪的光谱重建精度。该方法创新性地结合深度先验网络与注意力机制,通过自适应学习光谱隐式先验替代传统固定正则化项,并动态加权探测器响应通道。实验表明,所提方法在仿真和实测数据上均显著优于传统TKVA及主流深度学习算法,RMSE降低35%,PSNR提升4.2 dB,同时保持物理可解释性。完整MATLAB实现验证了方法的有效性与可复现性,为微型光谱仪的高精度重建提供了新思路。 关键词:量子点微型光谱仪;光谱重建;Tikhonov正

AI的内部世界的博客 85

cocos2d中CCCallFunc、CCCallFuncN和CCCallFuncND的区别

  cocos2d中有3种回调方式:CCCallFunc、CCCallFuncN和CCCallFuncND 其中,他们有什么区别呢?   这里我稍微总结下,不对的欢迎讨论和拍砖!   看源代码的excute方法,我总结下面3点: 1. CCCallFunc   -(void) execute { [targetCallback performSelector:sele...

wsq198760的专栏 221

ROS入门教程(七)—— Gazebo与RViz联合仿真

通过Gazebo与RViz联合仿真实现机器人运动。

吾门的博客 1万+

cocos2d-x学习日志(4) -- CCCallFunc系列函数的应用

一、简介 cocos2d-x常用回调函数有:CCCallFunc,CCCallFuncN,CCCallFuncND 它们之间区别: CCCallFunc:执行对应的回调函数,其中回调函数不可带参数 CCCallFuncN:执行对应的回调函数,其中回调函数带一个参数,其中参数CCNode* sender,被传递到run这个action的对象中。 CCCallFuncND:和

小枫的专栏 2034

华为OD机试 - 末世分配资源包 - 二分查找 + 贪心(Python/JS/C/C++ 新系统 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。末世时代,政府为各地方配资源,现有资源分配表 nums[n],要求按如下规则分配给 k 个营地:在最优平均分配情况下,得到最大团队所获得的资源数4,3,6,9,7 216最佳划分之一:[4,3,6] -> 13 [9,7] -> 16最大

学Java,找哪吒 224

汽车ECU诊断刷写和OTA升级中的验签和校验

汽车ECU诊断刷写和OTA升级中的验签和校验

天赐好车的博客 619

Cocos2dx 中的CCCallFunc,CCCallFuncN,CCCallFuncND,CCCallFuncO比较

qinning199原创,欢迎转载。转载请注明:http://www.cocos2dx.net/?p=27 首先看一张图片,表示了CCCallFunc的继承关系: 1、CCCallFunc,回调,调用不带参数的函数: CCSequence::actions(CCCallFunc::actionWithTarget(this, callfunc_selector(...

jishublog 206

VMware ESXi 直通GPU

虚拟机需要独享GPU资源,那么就需要用到DirectPath I/O (直通),ESXi hypervisor 把 GPU 设备直接映射成虚机中的 GPU 设备,供应用使用。注意,内存注意一定要勾选预留,否则开机后报错如下:无法打开虚拟机 win10 的电源。1.ESXi主机,管理,硬件,PCI设备,勾选GPU卡,切换直通,会提示要求重启主机,重启主机之后,该GPU设备直通一栏显示为“活动”。先确认虚拟机是否EFI引导:编辑虚拟机 - 虚拟机选项 - 引导选项 - 固件 - EFI。

liwension的博客 6294

cocos2d-x——CCCallFunc家族

在我们需要在一个动作序列中的某一个动作执行结束后,调用某个函数用于执行一个任务的时候我们可以使用CCCallFunc家族函数。CCCallFunc家族函数。CCCallFunc家族函数是CCActionInstant类的子类。值得注意的是,虽然CCCallFunc家族函数是瞬时动作的子类,但是所谓的瞬时,也只是指函数调用的一瞬间,而关于函数内容怎么执行,耗用多久,则完全与瞬时没有任何联系。CCCa

u012220823的专栏 618

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Cocos2d-x之 CCCallFunC家族

CCCallFunC家族        当我们需要在一个动作序列中某一个动作执行结束之后,调用某个函数用于执行一个任务的时候,我们可以使用CCCallFunC家族函数。CCCallFunC是CCActionInstant类的子类。值得注意的是,虽然CCCallFunC家族函数是瞬时动作函数的子类,但是所谓的瞬时,也只是指函数调用的一瞬间,而关于函数内部怎么执行,耗用多久,

杜甲同学的专栏 1895

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

CCCallFunC家族 定时触发器

各种回调函数的定义: 1 typedef void (CCObject::*SEL_SCHEDULE)(float); 2 typedef void (CCObject::*SEL_CallFunc)(); 3 typedef void (CCObject::*SEL_CallFuncN)(CCNode*); 4 typedef void (CCObject::*SEL_Call

sentimental_cat的专栏 434

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

cocos2d-x学习笔记 动作 CCCallFunc家族(回调函数包装器)

CCCallFunc是CCActionInstant的子类,是非常重要的一个类族,就是适配器。用大白话说,就是做了一层包装,把函数包装成动作,这样你在执行动作的时候,就可以执行函数了。听起来很怪异吗?为什么不直接执行函数呢?这是因为执行条件不同。 使用CCCallFunc家族的类 CCCallFunc家族一共有四个类。这是四个类对象的静态生成函数: 1...

weixin_34138139的博客 172

cocos2d-x 2.2 study ------------------------ CCCallFunC家族

CCCallFunC家族 当我们需要在一个动作序列中某一个动作执行结束之后,调用某个函数用于执行一个任务的时候,我们可以使用CCCallFunC家族函数。CCCallFunC是CCActionInstant类的子类。值得注意的是,虽然CCCallFunC家族函数是瞬时动作函数的子类,但是所谓的瞬时,也只是指函数调用的一瞬间,而关于函数内部怎么执行,耗用多久,则完全与瞬时没有任何关系。CCCall...

weixin_33701251的博客 84

cocos2d-x——CCCallFunc家族例子

boolHelloWorld::init() {     //////////////////////////////     // 1. super init first    if ( !CCLayer::init() )     {         returnfalse;     }         CCSprite *sp = CCS

u012220823的专栏 606

cocos2d-x CCCallFunc系列函数的应用

文章出处:http://blog.youkuaiyun.com/go_to_learn/article/details/8012852 CCCallFunc家族一共有四个类。这是四个类对象的静态生成函数: CCCallFunc * CCCallFunc::actionWithTarget(SelectorProtocol* pSelectorTarget,SEL_CallFunc sele

431

(转)cocos2d-x学习笔记08:动作1:立即动作

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://4137613.blog.51cto.com/4127613/762321  cocos2d-x学习笔记08:动作1:立即动作 第一部分:动作概述 动作可以说构成了cocos2dx的精华(你看动作类有多少子类就知道了)。 动作是什么?动作可以理解为指

gxj1680的专栏 815

cocos2d-x学习笔记08:动作1:立即动作

cocos2d-x学习笔记08:动作1:立即动作 第一部分:动作概述 动作可以说构成了cocos2dx的精华(你看动作类有多少子类就知道了)。 动作是什么?动作可以理解为指令,这些指令由节点执行。 动作由节点(node)执行,该节点执行动作的时候,他的所有子节点跟着执行,这一特性是非常有用的。 执行动作的代码非常简单,先生成,然后让...

weixin_34381666的博客 93
上一篇: Cocos2d 各种动作介绍
下一篇: LUA string库详解
Infinity_D
博客等级 码龄16年 1粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值