cocos2dx定时器scheduleUpdate研究

梦想游戏人
目录:
C/C++

直接发源代码 

  • #include <iostream>
  • #include <windows.h>
  • using namespace std;
  • class Ref
  • {
  • protected:
  • Ref(){isLoop = false;}
  • virtual void update(){cout<< "super loop" << endl;}
  • bool isLoop;
  • public:
  • void unScheduleUpdate(){isLoop = false;}
  • void ScheduleUpdate(){isLoop = true;}
  • void mainLoop(){if (isLoop)this->update();}
  • };
  • class myClass :public Ref
  • {
  • public:
  • virtual void update(){cout << "this loop" << endl;}
  • };
  • int main(int argc, char* argv[])
  • {
  • Ref*ref = new myClass;
  • ref->ScheduleUpdate();
  • for (;;)
  • {
  • cout << "loop" << endl;
  • Sleep(500);
  • ref->mainLoop();
  • ref->unScheduleUpdate();
  • }
  • return(0);
  • }
#include <iostream>
#include <windows.h>
using namespace std;

class Ref
{
protected:
	Ref(){isLoop = false;}
	virtual void update(){cout<< "super loop" << endl;}
	bool isLoop;
public:
	void unScheduleUpdate(){isLoop = false;}
	void ScheduleUpdate(){isLoop = true;}
	void mainLoop(){if (isLoop)this->update();}
};


class myClass :public Ref
{
public:
	virtual void update(){cout << "this loop" << endl;}
};



int main(int argc, char* argv[])
{
	Ref*ref = new myClass;
	ref->ScheduleUpdate();
	for (;;)
	{
		cout << "loop" << endl;
		Sleep(500);
		ref->mainLoop();
		ref->unScheduleUpdate();
	}
	return(0);
}

其结果和cocos scheduleUpdate定时器 功能一致,

这个问题困扰了很久,原因是c++基础更不扎实,该功能是典型的虚函数应用

Scroll Up