cocos2dx入门一之引擎初始化
代码执行流程:Cocos2dxRenderer.onSurfaceCreated()-> Cocos2dxRenderer.nativeInit()->main.cpp.Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeInit()->CCApplication.run()->AppDelegate.applicationDidFinishLaunching()->CCDirector.runWithScene()
说明:CCApplication.run()->AppDelegate.applicationDidFinishLaunching()这个过程实际上相当于 AppDelegate .run()->AppDelegate.applicationDidFinishLaunching()因为AppDelegate是CCApplication的子类,而且CCApplication持有一个静态单例对象,所以,只要AppDelegate被初始化,CCApplication就持有了一个AppDelegate的对象因此main.cpp.Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeInit()方法中的这两句代码:AppDelegate *pAppDelegate = new AppDelegate(); CCApplication::sharedApplication()->run();就相当于:AppDelegate *pAppDelegate = new AppDelegate(); pAppDelegate->run();
说实话AppDelegate *pAppDelegate = new AppDelegate(); CCApplication::sharedApplication()->run();这种写法确实很让人费解。