cocos 全局定时器

来源:互联网 发布:eagle软件怎么样 编辑:程序博客网 时间:2024/06/05 10:22
#pragma once#include "CommonHead.h"/***  全局定时器*/class GlobalSchedule : public TObject {public:// 开始全局定时器 fInterval: 时间间隔 ; fDelay: 延迟运行static void start(float fInterval = 0.0f);// 停止全局定时器static void stop();// 全局定时器暂停static void pause();// 全局定时器暂停恢复static void resume();// 全局定时器主逻辑实现void globalUpdate(float dt);       // 如果是每一帧实现的话void update(float dt);private:GlobalSchedule(float fInterval);~GlobalSchedule();static GlobalSchedule* m_pSchedule;};
GlobalSchedule* GlobalSchedule::m_pSchedule = nullptr;GlobalSchedule::GlobalSchedule(float fInterval) {CCAssert(!m_pSchedule, "以定义,不能重复定义");//SCHEDULE->schedule(//schedule_selector(GlobalSchedule::globalUpdate), //this, fInterval, false);g_pDirector->getScheduler()->scheduleUpdateForTarget(this, 0, false);m_pSchedule = this;}GlobalSchedule::~GlobalSchedule() {//g_pDirector->getScheduler()->unscheduleSelector(//schedule_selector(GlobalSchedule::globalUpdate), this);g_pDirector->getScheduler()->unscheduleAllForTarget(this);}void GlobalSchedule::globalUpdate(float dt) {// 这里写全局定时器的逻辑处理代码//CCLOG("global globalUpdate");}void GlobalSchedule::update(float dt){// 这里写全局定时器的逻辑处理代码//CCLOG("global update %.4f", dt);}void GlobalSchedule::start(float fInterval) {new GlobalSchedule(fInterval);}void GlobalSchedule::stop() {CCAssert(m_pSchedule, "未定义");CC_SAFE_DELETE(m_pSchedule);}void GlobalSchedule::pause() {CCAssert(m_pSchedule, "为定义");g_pDirector->getScheduler()->pauseTarget(m_pSchedule);}void GlobalSchedule::resume() {CCAssert(m_pSchedule, " 未定义");g_pDirector->getScheduler()->resumeTarget(m_pSchedule);}


0 0
原创粉丝点击