cocos2dx 全局定时器

cocos2dx的定时器Schedule通常在对象addChild后开始执行,但在removeFromParent时停止,不适合全局使用。为解决这个问题,文章作者通过创建静态类并结合线程自定义了一个全局定时器,以确保在场景切换时仍能保持运行。如果有其他更好的实现方式,作者欢迎交流。
摘要由CSDN通过智能技术生成

cocos2dx中,定时器Schedule是基于Object,在此object被addChild之后开始执行,在removeFromParent之后定时器关闭,所以想要开一个定时器在全局执行,即使定义一个静态变量Object,我们不可能每次切换场景的时候都把这个object给添加到场景里,就算能,也太麻烦了,所以,定义的定时器会在切换场景的时候关闭,这明显不符合我们想要的效果。

在网上搜了很久没找到,所以本人就用线程自己定义了一个,如果谁有更好的方法,请不吝赐教。

首先,定义一个静态类,

class Ab{
   public:
      static Ab* getAb();
      Ab();
      void startSchedule();//开始调度
      void stopSchedule();//结束调度
      void scheAction();//调度方法
   private:
       bool isStartSchedule;//用来控制调度
}

.m


#include "Ab.h"
#include <thread>
#include <iostream>
static Ab* mAb = null;

Ab* Ab::getAb(){
   if(mAb==null){
        mAb = new Ab();
   }
   return mAb;
}

Ab::Ab(){
}

void Ab::startSchedule(){
    isStartSchedule = true;
    auto f
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值