关于cocos2d-x跨平台是如何实现的

关于cocos2d-x跨平台的问题,网上搜到的答案一般是来自网上一位大神的微博文章《Cocos2d-x 程序是如何开始运行与结束的》,但是文章描述比较绕,我琢磨了几遍,总结一下自己的思路。

我认为可以用一句话概括:为每个需要适配平台分别实现代码,同一份代码,当编译的时候,判断编译平台,调用与编译平台相关的代码进行编译。

首先个人认为目前跨平台程序一般分为两种:

1.类似JAVA那样,将源代码编译为一种中间代码,然后在各种平台上分别实现了运行环境,理论上一次编译后即可跨平台运行;

2.源代码尽量使用平台无关的代码,平台相关的代码则对应每个平台单独实现,需要跨平台时,则只需要把平台无关的代码与对应平台的相关代码动态组合,理论上一套代码只需要在不同平台上再次编译即可。


对于cocos2d-x,我们知道与平台相关的代码都存放在/cocos/platform/目录下,在CCPlatformConfig.h中声明了与目标平台相关的宏定义,例如:

// win32
#if defined(_WIN32) && defined(_WINDOWS)
    #undef  CC_TARGET_PLATFORM
    #define CC_TARGET_PLATFORM         CC_PLATFORM_WIN32
#endif

如果定义了_WIN32和_WINDOWS则将CC_TARGET_PLATFORM重定义为CC_PLATFORM_WIN32

并且,我们都知道AppDelegate类作为跨平台部分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值