天天看点

schedule的使用,类似ontimer

schedule的作用类似于window下的onTimer(),设置定时器。

一、设置定时器自定义的函数响应

schedule(schedule_selector(SpriteFrameTest::startIn05Secs), 0.5f);
           

函数功能:每隔0.5s,调用一次startIn05Secs函数

二、取消定时器

unschedule(schedule_selector(SpriteFrameTest::startIn05Secs));
           

三、定时器管理器CCSchedule

CCScheduler::sharedScheduler()->pauseTarget(this);          // 暂停当前对象所有的定时器
                              ->resumeTarget(this);         // 恢复当前对象所有的定时器
                              ->unscheduleAllSelectors();   // 取消所有的定时器,CCNode的会取消当前节点的定时器
           

四、scheduleUpdate()默认定时器

scheduleUpdate();

Test::update(ccTime dt)
{
    // 将会执行
}

unscheduleUpdate();
加入当前节点后,程序会每帧都会自动执行一次默认的Update函数。(注:一定是Update函数哦,若想调用其他自己命名的函数则使用schedule看例子,走起,首先在HelloWord类的头文件中声明Update函数   void Update(float dt);   //注意参数类型
           

然后在HelloWorld类源文件中实现函数Update:

void HelloWorld::Update(float dt)
{
    CCLOG("baibai");
}
           

现在我们可以调用了,在需要他不断执行的地方加入调用的代码就ok:

this->scheduleUpdate();     //this是当前节点,如layer,所以可以省略啦。</span>
           

运行之后你将会看到不断有baibai被打印出来

五、取消默认定时器

unscheduleUpdate();