65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 Cocos2d-x 3.0 或更高版本创建跨平台游戏

2015 年 4 月 6 日

CPOL

6分钟阅读

viewsIcon

24134

在本教程中,您将学习如何在 Windows* 开发环境中,使用 Cocos2d-x 框架(3.0 或更高版本)创建一个简单的游戏,并将其编译以在 Windows 和 Android* 上运行。

Intel® Developer Zone 提供用于跨平台应用开发、平台和技术信息、代码示例以及同行专业知识的工具和操作指南,以帮助开发者创新和取得成功。加入我们的社区,获取 Android物联网Intel® RealSense™ 技术Windows 的信息,下载工具,访问开发套件,与志同道合的开发者交流想法,并参与黑客马拉松、竞赛、路演和本地活动。

在本教程中,您将学习如何在 Windows* 开发环境中,使用 Cocos2d-x 框架(3.0 或更高版本)创建一个简单的游戏,并将其编译以在 Windows 和 Android* 上运行。

什么是 Cocos2d-x?

Cocos2d-x 是一个基于 cocos2d for iOS* 的跨平台游戏(及其他图形应用,如互动图书)框架,但使用 C++、JavaScript* 或 Lua* 而非 Objective-C*。

该框架的优点之一是可以创建可在不同平台(Android、iOS、Win32、Windows* Phone、Mac*、Linux* 等)上部署的游戏,使用相同的代码库,并针对每个平台进行少量特定调整。

Cocos2d-x 控制台

cocos2d-console 在 3.0 版本中引入。它是一个命令行工具,提供了管理 Cocos2d-x 或 Cocos2d-JS 项目的一些功能,例如:创建、执行、构建、调试等。

创建您的第一个游戏

1 - 下载该框架的最新版本,并将其解压到您的开发环境中。本教程使用的是 3.3rc0 版本,并将框架解压到了桌面(C:\Users\intel-user\Desktop\cocos2d-x-3.3rc0)。

图 1. Cocos2d-x 版本 3.3 RC0 目录结构

2 – 要在 cocos2d-x 中创建新项目,请使用框架文件夹中的 setup.py(一个 Python* 脚本)来配置构建 Win32 和 Android 平台所需的所有环境变量。在执行 setup.py 之前,您需要下载、安装并配置以下项目:

如果您尚未安装 Python Runtime,请从此处下载 2.7.6 版本:https://pythonlang.cn/download/

图 2. setup.py 位置

3 - 打开命令提示符(cmd.exe)并执行以下命令:

- 导航到脚本文件夹(框架文件夹):
cd C:\Users\intel-user\Desktop\cocos2d-x-3.3rc0

- 运行脚本 setup.py
python setup.py (或仅 setup.py)

注意:要在命令提示符下运行 Python 命令,请将 Python 安装的文件夹添加到环境变量 PATH 中

- 该脚本将请求 Android SDK、Android NDK 和 ANT 的安装路径。

  • Android NDK 文件夹路径

图 3. Cocos2d-console 请求 NDK 文件夹路径
  • Android SDK 文件夹路径

图 4. Cocos2d-console 请求 SDK 文件夹路径
  • Apache ANT bin 文件夹路径

图 5. Cocos2d-console 请求 ANT bin 文件夹路径

输入请求的路径后,请重新打开命令提示符(cmd.exe)。此操作对于使用 cocos2d-console 命令至关重要

4 – 输入 cmd.exe 进入命令提示符(cocos2d-console 命令只能在此处发出),然后再次打开框架文件夹。

cd C:\Users\intel-user\Desktop\cocos2d-x-3.3rc0

在下一步中,我们将创建一个新的 Cocos2d-x 项目。

cocos new MyGame –p com.Project.MyGame –l cpp –d Project

图 6. 创建的 Cocos2d-x 项目

以下是参数的快速说明:

  • new:创建一个新项目,后跟项目名称(示例中为 MyGame)。
  • -p:定义包名。
  • -l:选择编程语言。值可以是 cpp 或 lua。
  • -d:框架将在此目录中创建项目结构。

如果一切顺利,您的项目将在框架解压目录下的 Project 文件夹中创建。

图 7. MyGame 目录结构

创建的项目包含游戏的基本代码(Classes)、资源(图像、音频等),以及每个框架支持平台的项目。

构建 Android* 应用

要求

  • 您需要配置所有用于构建 Android 应用游戏的(Android SDK、Android NDK 和 ANT)环境变量。如果您尚未完成此步骤,请参阅本文的“创建您的第一个游戏”部分。
  • Java Development Kit (JDK) 已安装。

注意:Cocos2d-console 使用 javac 命令为 Android 构建,因此有必要添加 JAVA_HOME 环境变量(JDK 路径)。

1 – 我们将为多种架构编译游戏,因为框架默认不为 x86 和 armeabi-v7a 编译。编辑位于以下路径的 Application.mk 文件:

C:\Users\intel-user\Desktop\cocos2d-x-3.3rc0\Project\MyGame\proj.android\jni

图 8. Application.mk 位置

2 – 将以下行添加到文件中:

APP_ABI := armeabi armeabi-v7a x86

图 9. 添加 APP_ABI 行后的 Application.mk

现在我们已经添加了目标架构,让我们来编译游戏!

3 – 使用命令提示符,转到框架文件夹。

cd C:\Users\intel-user\Desktop\cocos2d-x-3.3rc0

4 – 执行以下命令来编译和运行 Android 游戏:

cocos run –s Project\MyGame –p android

图 10. 执行命令以在 Android* 上编译和运行游戏
  • run:编译并运行项目。
  • -s:项目文件夹路径。
  • -p:选定的平台。

注意:仅编译,请输入:cocos compile –s Project\MyGame –p android

如果一切正常,cocos2d-console 命令将使用 adb(如果在环境变量中配置了)将 APK 文件安装到连接的设备或已初始化的模拟器上。如果它们不可用,命令将等待设备或模拟器可用,如下图所示:

图 11. 命令等待设备或已初始化的模拟器

如果您已初始化模拟器或连接了设备,将出现此屏幕:

图 12. Android* 平台上的游戏画面

构建 Win32 应用(适用于 Windows* 7 或 Windows* 8 桌面模式)

您需要 Visual Studio* 2012 或更高版本才能进行构建。

1 – 使用命令提示符(cmd.exe),转到框架解压的文件夹。

cd C:\Users\intel-user\Desktop\cocos2d-x-3.3rc0

2 – 执行以下命令在 Windows 上编译和运行游戏:

cocos run –s Project\MyGame –p win32

图 13. 执行命令以在 Windows* 上编译和运行游戏

以下是参数的快速说明:

  • run:编译并运行选定的项目。
  • -s:项目文件夹路径。
  • -p:选定的平台。

注意:仅编译,请使用“compile”代替“run”,如下所示:

cocos compile –s Project\MyGame –p win32

执行 run 命令后,如果一切正常,您将看到以下屏幕:

图 14. Windows* 平台上的游戏画面

也可以使用 Visual Studio 来编译和运行游戏项目。

1 – 在 Project 目录中,使用 Visual Studio 打开“proj.win32”文件夹下的 MyGame.sln 文件。

图 15. Win32 项目目录结构

2 – 要编译项目,请按 F6(或选择“生成”菜单 -> “生成解决方案”),然后按 F5 执行(或选择“调试”菜单 -> “开始调试”)。构建和执行后,您应该会看到与控制台步骤后显示的相同的屏幕。

图 16. 在 Visual Studio* 中打开的 Win32 项目

好了,现在您知道如何创建游戏并将其编译为 Android(x86 和 ARM*)、Windows 7 和 Windows 8(桌面模式)了!

参考文献

Cocos2d-x 框架的源代码根据 MIT 许可证授权,可以在此处找到。

Cocos2d-x 及其文档:http://www.cocos2d-x.org/

cocos2d-console:http://www.cocos2d-x.org/wiki/Cocos2d-console

注意

目前,Cocos2d-x 3.3 的发布版本在项目创建时存在一个问题,导致用户无法创建项目(点击此处了解详情)。该问题已在最新的预发布版本中修复,但尚未在 Cocos2d-x 的最新发布版本中提供。

© . All rights reserved.