Cocos2d-x与cocos2d-android在Android游戏中的比较

20

在我其中一个项目中使用了“cocos2d-iphone”之后,我正在尝试决定在Android游戏中应该使用哪种Cocos2d。以下是我的个人优缺点列表:

Cocos2d-x

优点: 以后将游戏带到iOS上可能会更容易,也有可能适用于其他平台

缺点/疑虑: 在Android上调试c++代码(简单或不简单?),NDK应用与各种Android设备的兼容性(问题有多大?),访问特定于平台的功能(应用内购买等)

cocos2d-android

优点: 全部使用Java编写,更容易设置和访问特定于平台的函数

缺点: 必须将Java转换为c++或Objective-C以适用于其他平台

这两个选项是否存在我没有考虑到的其他问题?如果有人不得不做出这个选择,你选择了哪个并为什么呢?


1
就此而言,请考虑您对编程语言和工具的熟悉程度,然后选择其中一个。您的首要目标是在一个平台上完成游戏。考虑到大多数项目都无法进入应用商店,即使成功上架,也很少有必要进行移植。 - CodeSmile
根据熟悉程度,如果我确定它足够稳定,我会选择Java版本。至于在iOS上不赚钱的问题 - 我已经经历过了:( Cocos2d-x真的吸引我,因为它承诺具有可移植性。 - Jason Weiss
当然选择cocos2d-x。现在它更加官方(请访问cocos2d-iphone网站和最新版本)。 - OMGPOP
4个回答

25
请注意,有两个几乎同名的项目:cocos2d-android和cocos2d-android*1*。后者是前者的分支,作者之所以这样做是因为cocos2d-android项目几乎已经死亡。
起初我对cocos2d-android1(看起来是一个非常好的工作)和cocos2d-x都有疑问,但是能够用C ++(我非常喜欢)开发并且具有多平台功能使我选择了cocos2d-x。
我仍在努力学习cocos2d-x。
我喜欢它的原因:
- 它是一个C++框架 - 您可以为Android、iPhone、Bada、Blackberry Playbook、Windows和Linux等平台开发应用程序。 请注意,目前cocos2d-x团队建议使用Windows和Linux端口方便您的开发而不是用于生产。 - 它有Lua绑定 - 它有适用于Marmalade的版本(一种付费的多平台SDK)
cocos2d-x从版本4开始使用NDK。目前我正在使用NDK r7。您可以为运行Android 2.1(API 7)及以上设备开发应用程序。
似乎在Android 4上使用cocos2d-x存在一些问题(这不应该是个问题,因为它还没有普及,而且cocos2d-x团队将解决任何问题)。
您可以访问特定于平台的功能,例如应用内购买,但代价是:您将几乎使用JNI实现所有内容。
这绝对比只需将JAR SDK放入libs文件夹并直接调用Java函数更难,但是仍然可行。
您可以在Windows、Linux或Mac上进行开发。对于每个操作系统,准备环境(cocos2d-x +目标SDK)的过程都有所不同。这不是问题,因为通常您会坚持其中一个。

现在让我告诉你,调试JNI / Java代码并不容易。为什么?因为您必须执行许多步骤才能启用此过程,并且调试过程非常缓慢。

因此,cocos2d-x团队建议您先在Linux或Windows上开发游戏,等一切就绪后再编译到Android上。这样,您需要解决的问题就很少了(如果有的话)。

我更喜欢从一开始就为Android开发。

总的来说,我很高兴使用cocos2d-x进行编码。社区非常热情关注cocos2d-x,并且他们提供了很多支持。

在学习过程中,我写了两篇教程:

祝好。


这些教程很有帮助。但是我正在使用Windows 7。这些教程在Windows 7上是否能够正常工作? - AndroidDev
很遗憾,我无法在Windows + Cygwin上使其正常工作。抱歉。 - Plicatibu
cocos2dx cocos2d-2.0-x-2.0.2在Linux(Ubuntu 11.10)中支持Android吗?我在模块加载中遇到以下问题 $(call import-module, CocosDenshion / android) $(call import-module, cocos2dx) $(call import-module, extensions)。 - Sameer Z.
很遗憾,自从cocos2d-x开始使用2.0版本以来,我就没有再使用过它,所以无法帮助你。 - Plicatibu
@MarcioAndreyOliveira 你还在使用cocos2d-x吗?它值得使用吗? - user739711

5

两个月前我也遇到了同样的问题。Cocos2d-Android已经停止维护,所以请使用cocos2d-x。这里有一些链接和教程可以帮助你开始使用它。


每次我查看教程时,要么是要求安装与COCOS兼容的每个东西,要么是在某处添加行但没有指定何时何地。没有人为初学者提供任何合理的教程。 - Harpreet
如果您不喜欢官方教程:http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Step_by_Step_Cocos2dxSimpleGame_Series,您可以阅读这本书:http://cocos2dbook.com/book/;虽然是针对Objective-C的,但只需进行少量更改即可帮助您。 - vgonisanz

2
如果你对C/C++比较熟悉,那么可以选择使用Cocos2d-x。但是,如果你来自Android和Java背景,没有C++经验,将会是一个非常痛苦的过程去整理一切。尽管最近Cocos2D for Android项目进展缓慢,但我不会说它已经死了。我使用的是在这里托管的版本:https://github.com/ZhouWeikuan/cocos2d
有几个教程可供参考:
逐步指南:如何在Cocos2d for Android中构建您的第一个滑块拼图游戏-第1部分:http://denvycom.com/blog/step-by-step-guide-on-how-to-build-your-first-slider-puzzle-game-in-cocos2d-for-android-part-1/ 如何使用Cocos2D制作简单的Android游戏:http://dan.clarke.name/2011/04/how-to-make-a-simple-android-game-with-cocos2d/ 对于其他人来说,希望这些内容能够有所帮助!

0

cocos2d-x(98%使用C ++和一些Android Java代码)是唯一适用于Android的cocos2d版本。

cocos2d Android(全部使用Java)可能在创建一些原型时有用,但作为一个活跃的开源开发项目,它已经死亡并且不再维护。

如果您想在Android上编写Java游戏,请使用AndEngine-它是活跃且得到良好维护的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接