定时器的使用

cocos2dx中有三种定时器:schedulescheduleUpdatescheduleOnce。功能分别是 每隔几秒调用自定义函数、调用系统默认的update()函数、只调用一次自定义函数

1scheduleUpdate

加入当前节点后,程序会每帧都会自动执行一次默认的Update函数。(注:一定是Update函数哦,若想调用其他自己命名的函数则使用schedule

看例子,走起。

1、首先在HelloWord类的头文件中声明Update函数:

    void Update(float dt);   //注意参数类型

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

voidHelloWorld::Update(float dt)

{

    CCLOG("baibai");

}

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

    this->scheduleUpdate();    //开启定时器  运行之后你将会看到不断有baibai被打印出来

3、停止方法:

this->unscheduleUpdate();

2schedule

功能:每隔几秒执行一次函数

1、首先还是在HelloWorld中声明所要执行的函数:

    void Move(float dt);

2、然后在源文件实现:

void HelloWorld::Move(floatdt)

{

    CCLOG("baibai");

}

现在去执行他,注意参数哦

    this->schedule(schedule_selector(HelloWorld::Move),1.0f); //开启定时器   每隔1.0f执行一次,省略参数则表示每帧都要执行

运行之后,baibai每隔1.0f才会被打印一次。

3、停止方法:

this->unschedule(schedule_selector(HelloWorld::Move));

3scheduleOnce

功能:在几秒之后执行,并且只会执行一次。

1、首先还是在HelloWorld中声明所要执行的函数:

    void Move(float dt);

2、然后在源文件实现:

void HelloWorld::Move(floatdt)

{

    CCLOG("baibai");

}

现在去执行他,注意参数哦

this->scheduleOnce(schedule_selector(HelloWorld::Move),1.0f); //开启定时器  在1.0f之后执行,并且只执行一次。

运行一下,baibai只是被打印了一次就完了。。。

ok,定时器的调用已经讲完了,大家不妨自己写一些函数体验一下。

4、停止所有计时器

this->unscheduleAllSelectors();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值