今天在写cocos2d-x游戏的时候,突然对cocos2d-x中回调机制很感兴趣,但是之前两周第一次接触实际C++开发,又要学习cocos2d-x框架,还有比较疲劳。实在没有心情去搞这些,这两天偷了个懒,缓了两天,终于又有精神干活了,要写大量的类似大掌门一样的战斗动画播放。我原来的想法是使用大量的回调来控制,因为不同的回合的动画需要的处理是不一样的,动画长短,还有后续的处理方式。后来发觉不现实,大量的回调,会把自己搞得头晕脑胀,根本无法控制流程,灵活性太低,最后决定使用定时去做。
话说回来,今天看到函数指针,突然很感兴趣,于是决定看看这一部分的知识,看看在CCObject中的关于schedule指针的定义
- typedef void (CCObject::*SEL_SCHEDULE)(float);
- #define schedule_selector(_SELECTOR) (SEL_SCHEDULE)(&_SELECTOR)
我得思路一直停留在C语言中的函数指针中,对于&符号的含义非常不清楚,这时候问一个经常使用C++的同学,他也表示很不清楚,大概是对C++的理解,停留在C语言的基础上,这样也有不好的一点,容易固化思维。我也是这样子的,对于传递一个这样一个指针的时候。