【Cocos2d-x游戏引擎开发笔记(7)】定时器
2012-12-08 23:17
585 查看
原创文章,转载请注明出处:/article/1389515.html
使用CCNode的schedule函数可以实现一个定时器,该函数一共有三个重载的函数
上面的代码是CCNode类中与schedule的代码。
void CCNode::schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay)
第一个参数是回调函数的指针
第二个参数是间隔多少时间调用一次
第三个参数是调用这个函数多少次
第四个参数是多少时间后调用这个函数
void CCNode::schedule(SEL_SCHEDULE selector)
默认每帧调用一次,调用无数次,马上调用
void CCNode::schedule(SEL_SCHEDULE selector, float interval)
调用无数次,马上调用。
有了定时器,我们就可以让某个函数一直执行下去,也可以然函数延时执行,也可以让函数执行若干次。
可以在init函数中调用这个方法,也可以在onEnter函数中调用这个方法,注意了,在onEnter函数中个调用这个方法的话,要保证调用父类的onEnter方法。
onEnter函数可能被多次调用,但是init是初始化的时候调用。
回调函数没有返回值,有一个float参数,表示距离上次调用该方法的时间长度。
使用CCNode的schedule函数可以实现一个定时器,该函数一共有三个重载的函数
void CCNode::unscheduleUpdate() { m_pScheduler->unscheduleUpdateForTarget(this); } void CCNode::schedule(SEL_SCHEDULE selector) { this->schedule(selector, 0.0f, kCCRepeatForever, 0.0f); } void CCNode::schedule(SEL_SCHEDULE selector, float interval) { this->schedule(selector, interval, kCCRepeatForever, 0.0f); } void CCNode::schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay) { CCAssert( selector, "Argument must be non-nil"); CCAssert( interval >=0, "Argument must be positive"); m_pScheduler->scheduleSelector(selector, this, interval, !m_bIsRunning, repeat, delay); } void CCNode::scheduleOnce(SEL_SCHEDULE selector, float delay) { this->schedule(selector, 0.0f, 0, delay); } void CCNode::unschedule(SEL_SCHEDULE selector) { // explicit nil handling if (selector == 0) return; m_pScheduler->unscheduleSelector(selector, this); } void CCNode::unscheduleAllSelectors() { m_pScheduler->unscheduleAllSelectorsForTarget(this); } void CCNode::resumeSchedulerAndActions() { m_pScheduler->resumeTarget(this); m_pActionManager->resumeTarget(this); } void CCNode::pauseSchedulerAndActions() { m_pScheduler->pauseTarget(this); m_pActionManager->pauseTarget(this); }
上面的代码是CCNode类中与schedule的代码。
void CCNode::schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay)
第一个参数是回调函数的指针
第二个参数是间隔多少时间调用一次
第三个参数是调用这个函数多少次
第四个参数是多少时间后调用这个函数
void CCNode::schedule(SEL_SCHEDULE selector)
默认每帧调用一次,调用无数次,马上调用
void CCNode::schedule(SEL_SCHEDULE selector, float interval)
调用无数次,马上调用。
有了定时器,我们就可以让某个函数一直执行下去,也可以然函数延时执行,也可以让函数执行若干次。
可以在init函数中调用这个方法,也可以在onEnter函数中调用这个方法,注意了,在onEnter函数中个调用这个方法的话,要保证调用父类的onEnter方法。
onEnter函数可能被多次调用,但是init是初始化的时候调用。
回调函数没有返回值,有一个float参数,表示距离上次调用该方法的时间长度。
void HelloWorld::update(float dt) { char *buf=new char[50]; memset(buf,0,10); sprintf(buf,"dt=%f",dt); CCLog(buf); delete []buf; }
相关文章推荐
- 【Cocos2d-x游戏引擎开发笔记】定时器
- 【Cocos2d-x游戏引擎开发笔记(7)】定时器
- 【Cocos2d-x游戏引擎开发笔记(2)】在屏幕上渲染文字
- 【Cocos2d-x游戏引擎开发笔记(11)】粒子系统----实现下雪效果
- 【Cocos2d-x游戏引擎开发笔记(22)】TexturePacker的使用
- 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第七课: Cocos2D-X引擎框架2
- 【Cocos2d-x游戏引擎开发笔记(11)】粒子系统----实现下雪效果
- 【Cocos2d-x游戏引擎开发笔记(16)】动画速度的控制
- 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第二十六课:Cocos2D-X物理引擎之Box2D11-12
- 【Cocos2d-x游戏引擎开发笔记(8)】在ubuntu上将游戏发布到Android
- 【Cocos2d-x游戏引擎开发笔记(2)】在屏幕上渲染文字
- 【Cocos2d-x游戏引擎开发笔记(3)】在屏幕上渲染菜单并添加消息响应
- 【Cocos2d-x游戏引擎开发笔记(12)】粒子系统实现与用户交互的特效
- 【Cocos2d-x游戏引擎开发笔记(23)】多线程以及线程同步
- 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第二十四课:Cocos2D-X物理引擎之Box2D1-7
- 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第九课: Cocos2D-X引擎框架4
- 【Cocos2d-x游戏引擎开发笔记(6)】触屏事件与多媒体 (转)
- 【Cocos2d-x游戏引擎开发笔记(24)】CURL实现get和post联网
- 【Cocos2d-x游戏引擎开发笔记(11)】粒子系统----实现下雪效果
- 【Cocos2d-x游戏引擎开发笔记(4)】系统动画