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