关于schedule和cccallfunc

     在cocos2d里有2种回调,第一种是通过schedule计时器每针回调,第二种是通过ccCallfunc 在某一个节点(CCNode)的runAction回调。

这两种回调函数都需要绑定一个CCObject*类指针,而且都可以通过 某种方法来确定 回调的次数,延迟 和 时间间隔,看似这两种回调相差不大,

但只有当你去使用的时候才发现区别有多大。

      首先schedule回调是 让某个函数 每隔一段时间不断调用且可以不停止它就一直被调用,直到手动去停止它或该schedule所属于的类被onExit了,

简单来说就是,我们可能并不知道schedule会被调用多少次。

      而cccallfunc则是在靠runAction调用,所以被调用的次数在代码里就已经决定了,所以在这方面的cccallfunc和schedule有点像数据里的扎和堆。

还有就是schedule可以可以调用类的static函数,神奇吧,虽然很奇怪,但不用怀疑,确实可以这样调用,只要将被绑定的指针制为空好了。

     而cccallfunc则不能调用 类static函数, 但它可以调用 重载函数(有个函数 void func(void) ,void func(int value) cccallfunction 可以调用void func(void) )

这点schedule就不行了,但cccallfunc也可以 调用没有绑定类的函数,这点和schedule一样。而且cccallfunc还有cccallfuncN  和cccallfuncND 这些可以带

参数的函数,这点比schedule好用多了。

     综上来看,这两种回调各有千秋,但个人感觉cccallfunc更为强大,也更好控制。

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值