cocos2dx各平台的入口

来源:互联网 发布:手机阅读软件mobi 编辑:程序博客网 时间:2024/06/08 10:18
先说IOS平台:一般存放在IOS文件夹下,入口是main函数,在其中加载

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++部分完全一样。


0 0