cocos2d-android - Cocos2d-x 与 cocos2d-android 的 Android 游戏

标签 cocos2d-android cocos2d-x

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

Cocos2d-x

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

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

cocos2d-android

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

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

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

最佳答案

请注意,有两个项目名称几乎相同: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 绑定(bind)
  • 它有一个 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 非常热情,他们非常支持。

    在学习的过程中我写了两个教程:
  • Developing with cocos2d-x for android on Linux ,它教你如何使用 cocos2d-x
  • 准备你的环境以进行 android 开发
  • How to debug cocos2d-x and Java code using Eclipse详细解释了执行调试 session 所需的所有步骤。

  • 问候。

    关于cocos2d-android - Cocos2d-x 与 cocos2d-android 的 Android 游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8483877/

    相关文章:

    android - 使用cocos2d-android在android中添加EditText

    android - Cocos2d 中的 ScrollView - android

    android - 我应该使用哪种音频格式在Android上编译cocos2d?

    ios - Cocos2d-x Parallax with Accelerometer(如何在到达边缘和改变方向时平稳停止)

    android - 如何在cocos2d-android中使用CCJumpTo

    cocos2d-android - 如何在android cocos2d中存储游戏分数

    android - Cocos2d-x crash due to ccLayer->schedule(schedule_selector(...), ...);

    android - 适用于 Android 的 sizeWithFont

    c++ - Cocos2Dx "use of undeclared identifier"iOS游戏内购

    android - 如何在cocos2dx中使用音量上下控制