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

本文探讨了cocos2d-x如何实现跨平台。主要通过平台无关代码和针对不同平台的特定实现结合,利用预处理器宏定义来区分和调用相应平台的代码。关键在于/cocos/platform/目录下的平台相关代码,以及AppDelegate类作为跨平台入口。在不同平台的main函数中初始化AppDelegate对象,从而启动cocos2d-x应用。
摘要由CSDN通过智能技术生成

关于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类作为跨平台部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值