cocos2d-x怎么实现跨平台

作者&投稿:弭虹 (若有异议请与网页底部的电邮联系)
cocos2d-x游戏跨平台,应用能实现跨平台吗~

所以基本流程如下:
1.下载Cocos2d-x库,分别在Windows平台和Mac平台上解压,并安装对应的向导。
2.在Windows平台和Mac平台上创建同名工程。
3.在Windows平台上开发代码,保证将代码放在Class目录和Resource目录。
4.把Windows平台上开发的Class目录和Resource目录中的代码拷贝到Mac电脑上,覆盖同名目录。
5.在Xcode中将刚添加的代码和资源加入工程。
6.在Xcode中启动编译,在虚拟机和真机上测试,完工。

其它需要注意的就是:
1.C++代码中标准库可以用,但有些对象的方法可能在IOS的编译器下不支持,我记得是在IOS下,容器Map的erase方法不返回下一个有效的迭代器对象。
2.资源路径问题。在Windows和IOS虚拟机中资源路径都是部分大小写的,但是在真机中路径要严格区分大小写。我之前在测试时就吃了大亏,因为从上层对象来看有时不好发现原因,比如某个Sprite没显示啊,后来才知道底层图片读取失败了。
3.这个库只适合开发基于图形的应用。如果要用到IOS下的标准界面,那必须要使用Object-c和IOS的api。
4.虽然可以跨平台,但目标平台的开发语言、开发环境和api还是要熟悉。否则有时遇到问题是不好解决的。所以现在经过几个月的开发,慢慢也习惯了Object-c了。

根据开源社区的保守统计,基于Cocos2D-X开发的游戏全球范围内已经突破一亿安装量。网龙、空中网、Haypi、TinyCo、人人游戏、4399、热酷、五分钟等国内外领先的游戏开发公司,都在使用Cocos2D-X开发手机游戏。Cocos2D-X JavaScript Binding将进一步降低开发门槛, 广大JavaScript程序员也可以方便的使用Cocos2D-X引擎开发游戏。基于JS绑定版开发的游戏,未来可以实现平滑过渡至HTML5。



本期特邀Cocos2d-X创始人王哲,首席架构师,Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于 Cocos2d-iphone,支持 WOPhone, iOS 4.1, Android 2.1 及更高版本, WindowsXP & Windows7,WindowsPhone 8,用Cocos2d-X开发的游戏已经超过了1亿的下载量,这里面Android是最大的量,这里面包括捕鱼达人的量,还有ios。Cocos2d-X其实已经足够成熟、足够稳定。基于Cocos2d-x引擎开发的游戏已达251款。

下面是一些精彩问答:

茶友:Cocos2d-X与Cocos2d-iphone有哪些不同.?

王哲:cocos2d-iphone是用objective-c语言写的,仅能在iOS和Mac上面运行。cocos2d-x是用C++写的,脚本绑定方面也使用了跨平台的lua和javascript,因此能在ios, android, wp8, linux, windows, mac osx, blackberry等绝大多数操作系统上运行。

茶友:cocos2d-x 是否支持 html5.?

王哲:支持html5的是另一个分支,cocos2d-html5。不过由于是我们同一伙人做的,所以网站仓库等都放在一起。后面等html5市场机会成熟的时候,不排除我们合并cocos2d-x和cocos2d-html5到同一个仓库的可能。

茶友:cocosbuilder增加了js脚本支持,但没有lua脚本支持。是说以后js是引擎发展重点么.?

王哲:1. 我们最后打算让cocos2d游戏兼容手机上的端游和页游两种形式,js能使游戏运行在浏览器的HTML5接口上,而lua不行。2. 今年cocos2d-x会以C++为基础,并行发展lua和javascript,毕竟HTML5现在还没起来。

  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文件,通过实现接口,我们就可以实现分平台调用了。转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦

基本流程如下:
1.下载Cocos2d-x库,分别在Windows平台和Mac平台上解压,并安装对应的向导。
2.在Windows平台和Mac平台上创建同名工程。
3.在Windows平台上开发代码,保证将代码放在Class目录和Resource目录。
4.把Windows平台上开发的Class目录和Resource目录中的代码拷贝到Mac电脑上,覆盖同名目录。
5.在Xcode中将刚添加的代码和资源加入工程。
6.在Xcode中启动编译,在虚拟机和真机上测试,完工。

cocos2d-x android环境搭建的问题,请问下面的问题应该怎么解决呢,花...
答:好吧,我是这么处理Android问题的:因为Cocos2d-X 是跨平台的,你哪create_project.py 创建项目的时候就全部都创建了,其中Class和Resource是共享的;如果是在Mac上开发就直接Xcode测试,最后拿 build_native.sh build一下,再拿 Eclipse 打包就好了;如果是Windows就拿VS开发测试, 再拿 Eclipse 打包...

cocos2d-x程序怎么实现骨骼动画
答:点击左上角有个“普通模式”按钮,点击切换成“动画模式”然后如果本身有动画的话,选择动作列表里面的动作名,然后在关键帧那一栏里面,点击播放的按钮就可以播放动画了;如果没有动画,就需要在动作列表那先右键“添加动画”,然后在对象结构里面选择你要做动画的控件,右键它“编辑动画”,然后就是编辑...

灯板里jsb是什么意思
答:JSB在游戏开发中的应用。JSB被广泛应用于游戏开发中,尤其是在3D游戏引擎中。它可以快速实现JS脚本和C++代码之间的互动,提高游戏性能,方便维护。同时,JSB还能够实现Cocos2d-x的跨平台支持,使得游戏可以在不同的平台上运行。总的来说,JSB是游戏开发中不可或缺的工具之一。如何学习JSB?要学习JSB,首先...

cocos2d的编程语言是
答:cocos2d也是用object-c 写的,用这个库写游戏特别的方便,应该是只能在mac上使用,cocos2d-x是用 c++写的,可以实现跨平台。

如何自己做 libcocos2d iOS.a 库文件
答:在我看来,不是ios开发。cocos2d-html5基于的技术是cocos2d-x,而cocos2d-x是为了实现跨平台对cocos2d进行的改写。因此,cocos2d是只支持ios开发的,cocos2d-x是可以跨平台的,可以支持ios和android等设备的开发,而cocos2d-html5显示是web开发,就是把cocos2d-x技术引入到web中来,也就是把cocos2d技术引入...

开发跨平台2D手游到底是选择unity3d还是cocos2d-x好
答:而cocos2d-x则主要处理跨平台解决方案。目前cocos2d-x主要维护三个版本,一个是原生的C++版本,一个是支持windows phone 7的C#版本,一个是支持HTML5的JS版本,当然也有我们所开发的cocos2d-x for win8 metro的版本可以支持windows 8 metro风格游戏开发,通过这几个版本几乎可以跨目前大部分主流的平台。...

cocos2d-x能做PC游戏吗?就是windows电脑游戏
答:可以,cocos2d-x是C++写的,跨平台,网上有很多在VC中使用cocos2d-x的例子,要记得把库和文件导入到工程中。

如何基于cocos2dx3.x实现A星寻路算法
答:2017-03-16 如何基于cocos2dx3.x实现A星寻路算法 2015-05-27 如何基于Cocos2d-x v3.x实现A星寻路算法 2017-06-29 如何在Cocos2D游戏中实现A*寻路算法 2017-01-12 如何在使用Cocos2D中实现A星(A*)寻路算法 2015-11-06 如何基于cocos2dx3.x实现A星寻路算法 2015-02-09 如何基于cocos2dx3.x实现A星...

cocos2dx制作的游戏怎么访问数据库的
答:这个目录,cocos2.1.3可以通过CCFileUtils::sharedFileUtils()->getWritablePath()来获得。也就是说,我们需要把资源目录下的sliqte库文件,复制到CCFileUtils::sharedFileUtils()->getWritablePath()中,才可以对其进行操作。对于这种情况,我的解决方案是,在AppDelegate.cpp中,做如下实现 bool isFile...

cocos2dx html5 创建的js怎么引用
答:H5edu教育Html5开发为您解答:cocos2d-js是cocos2d-x的JavaScript版本,真正跨全平台的游戏引擎,采用原生JavaScript语言,可发布到包括Web平台,iOS,Android,Windows Phone8,Mac,Windows等平台。利用cocos2d-js开发HTML5游戏/动画,我们可以通过SDK也可以直接使用js类库:l SDK下载:http://cn.cocos2d-x...