20

在我的一个项目中使用 'cocos2d-iphone' 之后,我试图决定我应该在 Android 游戏中使用哪种风格的 Cocos2d。我个人的利弊清单:

Cocos2d-x

优点:以后将游戏带到 iOS 应该会更容易,其他平台也可能

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

cocos2d-android

优点:所有 Java,更易于设置和访问特定于平台的功能

缺点:对于其他平台,必须从 Java 转换为 c++ 或 Objective-C

我没有考虑到的任何一个选项是否还有其他问题?如果有人必须做出这个选择,你会选择什么,为什么?

4

4 回答 4

25

请注意,有两个项目名称几乎相同:cocos2d-android 和 cocos2d-android* 1 *。后者是前者的一个分支,它的作者这样做是因为 cocos2d-android 项目几乎死了。

一开始我对 cocos2d-android1(这似乎是一个很好的工作)和 cocos2d-x 有疑问,但是用 C++ 开发(我非常喜欢)和多平台的可能性让我选择了 cocos2d-x .

我还在努力学习 cocos2d-x。

我喜欢它的地方:

  • 项目清单

  • 这是一个 C++ 框架

  • 您可以为 Android、iPhone、Bada、Blackblery Playbook、Windows 和 Linux 进行开发。请注意,目前 cocos2d-x 团队建议 Windows 和 Linux 移植是为了方便您的开发而不是生产。

  • 它有一个 Lua 绑定

  • 它有一个 Marmalade 版本(付费的多平台 SDK)

cocos2d-x 从第 4 版开始就与 NDK 一起工作。目前我正在使用 NDK r7。您可以为自 android 2.1 (API 7) 以来运行的设备进行开发

似乎 cocos2d-x 在 android 4 上存在一些问题(这应该不是问题,因为它仍然没有那么广泛,而且 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 非常热情,他们非常支持。

在学习的过程中我写了两个教程:

问候。

于 2011-12-13T12:38:39.253 回答
5

2个月前我遇到了同样的问题。Cocos2d-Android 已经死了,所以使用 cocos2d-x。这里有一些链接和教程开始使用它。

于 2012-05-23T09:00:27.013 回答
2

如果您对 C/C++ 感到满意,请务必走 Cocos2d-x 路线。但是,如果您来自 Android 和 Java 背景,没有 C++ 经验,那么让一切井井有条可能是一种非常痛苦的经历。鉴于 Cocos2D for Android 项目最近一直很慢,我不会特别说它已经死了。我在这里使用了github上托管的版本.. https://github.com/ZhouWeikuan/cocos2d

有几个入门教程。

如何在 Cocos2d for Android 中构建您的第一个滑块益智游戏的分步指南 - 第 1 部分http://denvycom.com/blog/step-by-step-guide-on-how-to-build-your-first-滑块拼图游戏在 cocos2d-for-android-part-1/

如何使用 Cocos2D 制作简单的 Android 游戏http://dan.clarke.name/2011/04/how-to-make-a-simple-android-game-with-cocos2d/

对于所有来到这个线程的人,我希望这很有用!

于 2014-02-26T05:02:04.017 回答
0

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

如果您想创建一些原型, cocos2d Android(全 Java)可能会很有用,但作为一个活跃的开源开发项目,它早已死去并且没有维护。

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

于 2013-10-09T13:59:21.903 回答