【cocos2dx 3.x】延时调用

本文介绍了cocos2dx 3.x中实现延时调用的方法,重点解析了`schedule`函数的参数`interval`和`delay`,并提供了两种使用示例。通过设定计数器和取消计时器,确保在特定条件满足后停止延时调用。示例代码展示了如何使用lambda表达式和`schedule_selector`进行延时操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果是用于cocos2dx 本身的动画需要,还是用

void schedule(const std::function<void(float)>& callback, float interval, unsigned int repeat, float delay, const std::string &key);

(这里需要着重理解下两个参数:interval 和 delay,delay:秒,首次调用callback时的延时,也就是延时多少秒来开始这整个的延时调用。interval:秒,后面的每次循环时间间隔。)

来实现,如:

         int count = 0;

    schedule([&](float dt)  
    {  
        if (count > 3)  //设置个计数,如果达到后把计时器取消掉
        {  
            unschedule("MySchedule");  
        }  
        else  
        {  
            count ++;  

            //your codes below 

            //....
        }  
    }, 1.f, CC_REPEAT_FOREVER, 0.0f, "MySchedule");
 //同时也可以注意下这里的参数 CC_REPEAT_FOREVER


或者这样:

   int count = 0;

   schedule(schedule_selector(HelloWorld::delayCall),1.f,CC_REPEAT_FOREVER,0.0f); 

   void HelloWorld::delayCall(float dt)

   {

       if(count > 3){

             unschedule(schedule_selector(HelloWorld::delayCall));  

       }else{

            //do something here

       }

   }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值