先说IOS平台:一般存放在IOS文件夹下,入口是main函数,在其中加载
Android: 安卓部分比较简单,就是Java通过Jni调用C++实现。入口在AppActivity,继承自Cocos2dxActivity。
AppController,这个类完成了IOS平台的环境初始化,大部分代码都是ios平台的代码,与cocos2d-x相关的只有两句:
static AppDelegate s_sharedApplication;
cocos2d::CCApplication::sharedApplication().run();
CCApplication是一个单例的类,而sharedApplication是其全局访问方法,获得其实例。AppDelegate私有继承CCApplication类,隐藏接口。
AppController.mm一开始定义一个static的AppDelegate就是要定义一个CCApplication的实例,然后调用run函数,看这个函数
int CCApplication::run()
{
if (applicationDidFinishLaunching())
{
[[CCDirectorCaller sharedDirectorCaller] startMainLoop];
}
return 0;
}
调用applicationDidFinishLaunching()函数,这个由AppDelegate实现,从此程序进入coco2d-x引擎部分,后续就与平台无关了,都是c++实现。
Android: 安卓部分比较简单,就是Java通过Jni调用C++实现。入口在AppActivity,继承自Cocos2dxActivity。
cocos2d-x中,一个完整的android游戏分两部分,cocos2d-x库和Java部分,说白了就是C++部分和Java部分,默认的Java部分是固定好了的,一般不需要自己再修改,跟编译一般的android应用一样,用Eclipse就可以。C++部分就是用cocos2d-x实现游戏的部分,这部分需要用NDK来编译成动态链接库。C++部分跟ios下的C++部分完全一样。