main.cpp-- 程序的主入口
#include "main.h""AppDelegate.h""cocos2d.h"USING_NS_CC;int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance LPTSTR lpCmdLine int nCmdShow){ UNREFERENCED_PARAMETERhPrevInstance);lpCmdLine // create the application instance AppDelegate app; //创建这个应用程序实例 return Application::getInstance()->run(); //运行它}
问题:AppDelegate app; 的时候创建应用程序对象,但是为什么可以使用Application::getInstance()->run(); 来运行呢。为什么不是app.run(); 呢?
AppDelegate.cpp-- 应用程序类,相当于Android 里面自定义Application
classAppDelegate:privatecocos2d::Application
classCC_DLLApplication:publicApplicationProtocol
Application 的单例实现方案
win32
Application *sm_pSharedApplication = 0; //0 就是null,C++比Java灵活多了Application::Application() //构造函数: _instance(nullptr _accelTable _instance GetModuleHandle _animationInterval.QuadPart; CC_ASSERT(! sm_pSharedApplication sm_pSharedApplication this;}Application::~Application() //析构函数this==} Application() //拿到实例函数sm_pSharedApplication}
Android