【笨木头原创专栏】我是定时器(第03章)—真正的定时器之schedule

我是定时器第03真正的定时器之schedule

上一节介绍的”定时器”实在是有点不定时,这次我给大家介绍一个很定时的定时器。

(小若:= =总觉得逻辑不对)

 

 

笨木头花心贡献,啥?花心?不呢,是用心~转载请注明,原文地址http://www.benmutou.com/blog/archives/57

正文:

1. 不调用update函数,调用自己的函数

其实原理是一样的,我们调用scheduleUpdate的时候,系统默认每帧去调用update函数,但如果我们想调用自己的函数呢?很简单,先给HelloWorldScene添加一个函数:

private:
	/* 自定义的update函数 */
	void MutUpdate(float fDelta);

同样在函数里打日志:

void HelloWorld::MutUpdate( float fDelta )
{
	CCLOG("MutUpdate");
}

然后我们要添加一句很暴力的代码:

bool HelloWorld::init()
{
    bool bRet = false;
    do 
    {
        CC_BREAK_IF(! CCLayer::init());

        //this->scheduleUpdate();

		/* 指定每帧执行自定义的函数 */
		this->schedule(schedule_selector(HelloWorld::MutUpdate));
        bRet = true;
    } while (0);

    return bRet;
}

我们使用schedule指定了一个自定义的函数,然后我们用调试模式运行项目,将看到以下输出:

MutUpdate

MutUpdate

MutUpdate

MutUpdate

MutUpdate

MutUpdate

MutUpdate

MutUpdate

我想,没有什么可以解释的,就是指定了一个回调函数。

(小若:其实他不懂。)

 

2. 真正的定时

好喇,我们要真正创建一个定时器了,我们修改一下schedule的参数就可以了:

this->schedule(schedule_selector(HelloWorld::MutUpdate), 1.0f);

第二个参数的意思是,每隔多少秒执行一次MutUpdate函数,记住,单位是秒。

 

还有一个更厉害的定时器,我忍不住要给大家介绍了!

(小若:好棒!)

请听下节分解。

(小若:你妹纸的!)

标签: cocos2d-x, 定时器

?>