使用cocos2d-x跨平台开发

    去年本打算转向IOS开发的,由于IOS上的主要语言是Object-C,使我产生了很大的排斥感,可能是岁数大了的缘故,不愿意搞新的玩艺。后来发现了在IOS平台上的Cocos2d库,它是一个在ios系统上基于opengl的2d渲染库,整个库使用object-c进行开发的,在App Store中发布的游戏有不少是用它实现的。没想到后来出了一个cocos2d-x,居然是Cocos2d的c++的版本,具有很好的跨平台特性。这样在开发基于IOS平台的软件时不仅可以使用熟悉的c++,而且还可以在windows平台上进行开发和调试。

    Cocos2d-x库在Windows平台下有完整的工程配置和向导,可以方便的创建工程,也拥有相当全面的示例。只要熟悉Windows平台开发的同志,我想用这个库应该没什么问题。在Windows平台上这个库使用了OpenGL来绘制,只是窗口的建立用了Windows的标准窗口和事件机制。当然跨平台特性也是这部分来体现的,在IOS平台下还有另一套代码,用了IOS中的应用框架和视图来实现的。上层的逻辑当然是通用的,所以这个既可以在Windows平台运行也可以在IOS平台上运行。 

    用向导建立的工程中有两个目录很关键:Resource和Class目录。Resource目录存放项目中使用的各种资源,Class目录用于存放项目中平台无关的代码。所以我们在开发的时候把所有的东西都放在这两个目录下面,这样在IOS平台上重新编译的时候就可以直接把文件拷贝过去就行了,因为IOS平台的工程下也有这两个目录。

所以基本流程如下:

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了。被逼无奈。。。

posted @ 2011-09-19 13:25  徐淼  阅读(4646)  评论(1编辑  收藏  举报