cocos2dx跨平台

AppDelegate 作为跨平台程序入口,在这之上做了另一层的封装,封装了不同平台的不同实现。比如我们通常认为一个程序是由 main 函数开始运行,那我们就去找寻,我们看到了在 proj.linux 目录下存在 main.cpp 文件。在main.cpp 中 CCApplication::sharedApplication()–>run(); 这一句看起,这一句标志着, cocos2d-x 程序正式开始运行,现在定位到 sharedApplication() 方法的实现,在CCAplication类中我们可以看到从 sharedApplication() 方法,在调用 run() 方法,在这之前,我们需要调用到它的构造函数,否则不能运行,这就是为什么在 CCApplication::sharedApplication()–>run(); 之前,我们首先有语句 AppDelegate app; 而创建 AppDelegate 变量的原因是 AppDelegate 是 CCApplication 的子类,在创建子类对象的时候,调用其构造函数的同时,父类构造函数也会执行,然后就将 AppDelegate 的对象赋给了 CCApplication 的静态变量,而在 AppDelegate 之中我们实现了 applicationDidFinishLaunching方法,所以在 CCApplication 中 run 方法的开始处调用的就是 AppDelegate 之中的实现。而我们在此方法中我们初始化了一些变量,创建了第一个 CCScene 场景等,之后的控制权,便全权交给了CCDirector::sharedDirector()–>mainLoop(); 方法了。
 
在cocos2d-x的文件夹下,有一个platform文件夹,里面存放了跨平台的封装接口。当前目录下有CCApplicationProtocol.h头文件,子目录有win32,Android,IOS三个文件夹,里面分别存放跨平台需要的函数,其中包括CCApplication。而AppDelegate 类则是继承自CCApplication。CCApplication又继承自
 
CCApplicationProtocol。在CCApplicationProtocol中定义了applicationDidFinishLaunching虚方法,由CCApplication 继承, AppDelegate 实现的。以此实现了跨平台。
 
java输入→Jni→c++输入→c++处理(API实现)→c++输出→Jni→java输出
 
而在Android 平台启动 cocos2d-x程序。可以找到Android 平台与上面等价的入口点,proj.android/jni/hellocpp/main.cpp。在main.cpp文件里面并没有看到 main 函数,这是由于不同的平台封装所以有着不同的实现,在 Android 平台,默认是使用 Java 开发,可以使用 Java 通过 Jni 调用 C++ 程序,而这里也正式如此。我们暂且只需知道,由 Android 启动一个应用,通过各种峰回路转,最终执行到了 Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeInit 函数,由此,变开始了我们 cocos2d-x Android 平台的程序入口处。,其它平台程序的入口必然包含着其它平台的不同封装实现 。
 
参考:http://blog.leafsoar.com/archives/2013/05-05.html
Cocos2D-X是全球知名的开源跨平台游戏引擎,易学易用,目前已经支持 iOS、Android、Windows 桌面、Mac OS X、Linux、BlackBerry、Windows Phone 等平台。Cocos2d-JS统一了使用JS进行开发的开发体验,将HTML5引擎与JSB的API高度统一起来。捕鱼达人HTML 5版本基于此引擎实现对浏览器的支持,并获得谷歌Web Store首页置顶推荐。引擎配套有活跃的社区支持,已有来自Google、Zynga、Microsoft、Intel、Samsung、BlackBerry等跨国公司的优秀工程师为引擎贡献代码,开源社区24小时轮转所有的缺陷都被迅速发现并修复。 Cocos2D-X已被海内外顶尖的游戏公司,如Zynga、Glu、Gree、DeNA、TinyCo、Gamevil、HandyGames、人人游戏、4399、搜狐畅游、昆仑万维、热酷、乐元素、菲音、心动游戏等用于其主流 iOS/Android游戏开发。 目前移动平台最火爆收入最高的几款游戏,如月收入超过千万的捕鱼达人2、龙之力量、忘仙OL、神仙道等均是基于Cocos2d-x开发。多款下载量千万次以上的知名手机游戏。如捕鱼达人、口袋商业街、小小村庄、云和绵羊、三国群殴传等,同样是基于Cocos2d-x开发。已经有2000多款基于Cocos2d-x开发的发布在全球各大应用商城,累计下载量超过5亿次。 众多知名端游、页游公司选择Cocos2d-x引擎开发移动游戏。如盛大游戏、昆仑万维 、畅游、完美世界、4399、广州菲音、金山西山居等。神仙道、星晨变、卧龙吟、东风破等游戏已经基于Cocos2d-x成功移植至手机平台,并取得非常优异的成绩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值