cocos2d-x怎么实现跨平台
2015-02-08 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517193
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
cocos2d-x之所以能跨平台开发,是因为cocos2d-x的核心是调用了openglEx的api去实现的,所以理论上来说只要是支持openglEx的平台,都可以使用cocos2d-x去开发游戏。
我们使用cocos2d-x去实现的第一个游戏,其实是没有真正使用到-x的跨平台开发的,基本上都是在维护两份代码,结果当然大家都可以想象得到。因为,我不仅仅是cocos2d-x的新手,同时还是oc和c++的新手,于是,我在想一个问题,为什么我们要维护两份代码(.cpp和.mm),而-x却只是使用一份代码就能搞定?带着这个问题,我研究了-x的声音引擎,也就是SimpleAudioEngine这个类。结果被我发现了其中的原理,也就是以下两点:
1.使用平台宏定义区别加载头文件
2.使用oc中的.mm文件对c++与oc的兼容
以上两点,就可以帮我们做到真正的跨平台开发,一份代码同时解决两个平台的功能。当然,因为涉及到一些原生调用,是没有办法完全的做到一份代码实现所有功能的,比如说IOS的推送功能。所以,上面的两点就可以帮我们解决这样的问题了。
实现原理:
app->调用公共接口->调用平台实现
公共接口是没有实现的一个接口定义文件也就是一个简单的.h文件,通过实现接口,我们就可以实现分平台调用了。转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦
我们使用cocos2d-x去实现的第一个游戏,其实是没有真正使用到-x的跨平台开发的,基本上都是在维护两份代码,结果当然大家都可以想象得到。因为,我不仅仅是cocos2d-x的新手,同时还是oc和c++的新手,于是,我在想一个问题,为什么我们要维护两份代码(.cpp和.mm),而-x却只是使用一份代码就能搞定?带着这个问题,我研究了-x的声音引擎,也就是SimpleAudioEngine这个类。结果被我发现了其中的原理,也就是以下两点:
1.使用平台宏定义区别加载头文件
2.使用oc中的.mm文件对c++与oc的兼容
以上两点,就可以帮我们做到真正的跨平台开发,一份代码同时解决两个平台的功能。当然,因为涉及到一些原生调用,是没有办法完全的做到一份代码实现所有功能的,比如说IOS的推送功能。所以,上面的两点就可以帮我们解决这样的问题了。
实现原理:
app->调用公共接口->调用平台实现
公共接口是没有实现的一个接口定义文件也就是一个简单的.h文件,通过实现接口,我们就可以实现分平台调用了。转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询