Cocos 2d-x引擎鸿蒙游戏集成系统能力参考 原创

游戏技术分享
发布于 2025-6-27 17:36
浏览
0收藏

1 背景

为了帮助开发更好使用HarmonyOS NEXT,现封装了部分系统API供开发者使用。

由于各API使用场景不同,部分API可以直接在UI线程调用,因此使用AKI框架通过C++调用ArkTS代码能力实现。

Cocos 2d-x引擎需使用的是3.17.2版本。

2 Demo接入准备(重要)

2.1 RomAPI代码二次开发(可选)

2.1.1 自动导入对应module

前往​​Demo 源码​​下载Demo。

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

确认插件包中压缩包是否是对应模块的zip格式压缩包,此格式为DevEco Studio导出module导出的结果。

上方菜单栏选择File/New/Import…/Import Module。

在文件选择栏中选择插件包中的对应模块的zip文件,选择后点击ok导入,导入成功如下:

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

导入完成后修改entry/oh-package.json5中的依赖路径。

2.1.2 手动导入module

如果在选择导入的module时对应路径下找不到存在的zip文件则需要手动添加文件进工程,方法如下:

  1. 解压zip的压缩包。
  2. 选择解压到此处,解压后文件内内容。​

    Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

  3. 将解压后文件夹移动至DevEco Studio工程根目录。​

    Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

注意此方法加入的文件夹未被识别成module

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

此时并未作为module使用,没有蓝色方块标识。需要执行以下操作:

  1. 打开工程级build-profile.json5文件。
  2. 在此处新增配置。

    Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

  3. 完成后同步工程。

    Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

    已经重新关联成module。

    Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

2.2 详细接入准备(不需要对应能力的可跳过)

部分Demo使用需要配置申请用户权限,此部分已集成在对应har包module.json5文件中,如果遇到权限问题,请检查对应har包的module.json5文件。

2.3 2dx接入说明

  • 使用AKI的框架。

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

·​通过ContextManagerMsg.ets中间层去调用har包的方法,返回到我们test用例方法中去处理相关回调。相关AKI的参考文档:

  • 出包(Build –> BuildHaps),正式上架需要出APP包,具体操作在上架前咨询接口人。

    Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

    hap包路径为entry/build/default/outputs/default/entry-default-signed.hap。

    Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

  • 安装连接HarmonyOS NEXT手机,命令行执行hdc install entry-default-signed.hap,将hap包安装到手机中。

    Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

    ​​​​hdc命令工具在DevEco Studio开发套件->sdk->toolchain中,可以手动加入环境变量方便使用。

    Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

3 Demo功能介绍

3.1 应用信息Har (libAppInformation)

3.1.1 获取包名应用信息

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区调用HarmonyOS NEXT系统’​​@ohos.bundle.bundleManager​​’组件 获取应用包名信息。

3.1.2 设备信息Demo

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区


Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

调用HarmonyOS NEXT系统’​​@ohos.batteryInfo​​’,’​​@ohos.deviceInfo​​’ '​​@ohos.telephony.radio​​’组件,获取电池信息,设备信息,运营商信息等。resfilePath可以通过在DevEco Studio项目中,将部分资源放置在应用安装后的沙盒目录中。 需要开发者手动在<module-name>\resource路径下创建resfile目录,且目录不能为空

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

3.1.3 设备可用窗口区域信息Demo

调用HarmonyOS NEXT系统’​​@kit.ArkUI​​’组件,实现获取窗口信息功能功能。

3.2 应用操作Har(libAppOperation)

3.2.1 应用重启Demo

3.2.2 跳转外部应用Demo

3种方式拉起应用市场的具体接入流程请参见文档​​拉起指定应用​​。

3.2.3 进程退出Demo

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

调用HarmonyOS NEXT系统’​​@ohos.process​​’组件,直接通过进程退出应用。

3.2.4 通知推送Demo

调用HarmonyOS NEXT系统’​​@ohos.notificationManager​​’组件,实现本地推送通知功能。

本demo未实现后台推送功能,若需要后台推送,可以通过’​​@kit.PushKit​​’组件获取pushToken进行后台推送,详细请参见​​推送后台消息​​。

3.3 日程管理Har(libCalendar)

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

调用HarmonyOS NEXT系统’​​@ohos.calendarManager​​’组件,实现创建日历,创建日历时间,以及其他相关操作。

需要获取日历读写权限。需要在module.json5配置权限信息。已在har包内集成。

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

3.4 数据管理Har(libDataStorage)

3.4.1 关键资产存储服务Demo

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

调用HarmonyOS NEXT系统’​​@kit.AssetStoreKit​​’组件,实现持久化关键存储数据功能。

获取ohos.permission.STORE_PERSISTENT_DATA权限后,可实现卸载后仍保留数据。

需要设置锁屏密码后,可以测试调用需要鉴权的接口。

3.4.2 关系数据库Demo

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区


Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

调用HarmonyOS NEXT系统’​​@ohos.data.relationalStore​​’组件,实现创建数据库,创建数据表,以及对表内数据增删改查的操作。

3.4.3 用户首选项Demo

调用HarmonyOS NEXT系统’​​@kit.ArkData​​’组件,实现持久化存储数据功能。

3.5 文件操作Har(libFileOperation)

3.5.1 应用存储空间Demo

3.5.2 文件压缩解压缩Demo

首次使用请先点击一次CopyFile按钮把文件复制到应用沙箱目录方便操作。

3.5.3 读取rawfile路径文件Demo

3.6 弹窗通知Har(libDialogLibrary)

3.7 游戏常用工具Har(libGameCommon)

3.7.1 权限管理Demo

调用HarmonyOS NEXT系统’​​@ohos.abilityAccessCtrl​​’组件的requestPermissionsFromUser接口实现弹窗申请权限。

权限条目需要在DevEco Studio的model.json5内提前配置,当前Demo已在har包内集成。

3.7.2 剪贴板Demo

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

调用HarmonyOS NEXT系统’​​@ohos.pasteboard​​’组件,支持复制到系统剪贴板。

  • 从系统剪贴板获取需要以下步骤:ohos.permission.READ_PASTEBOARD是受限的user_grant(用户授权)权限,使用自定义控件的应用可以通过申请ohos.permission.READ_PASTEBOARD权限,在用户授权的场景下访问剪贴板内容。
  • 权限申请步骤:
  1. 查看READ_PASTEBOARD介绍,审视应用是否符合申请该权限的使用场景。
  2. 在AGC侧申请Profile文件,将用于后续的应用签名信息配置。
  3. 在module.json5配置文件中声明权限。
  4. 通过弹窗向用户申请权限。

3.7.3 获取定位Demo

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

调用HarmonyOS NEXT系统’​​@ohos.geoLocationManager​​’组件,开启定位功能获取定位和精确定位权限,开发者需要在module.json5配置权限信息。

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

3.7.4 振动器Demo

3.8 广告Har(libAdsLibrary)

获取广告标识符需要获取应用追踪权限。

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

3.9 Picker工具Har(libPicker)

3.9.1 文件picker工具

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

调用HarmonyOS NEXT系统’​​@kit.CoreFileKit​​’组件的picker,拉起文件选择器。

3.9.2 图片picker工具

Cocos 2d-x引擎鸿蒙游戏集成系统能力参考-鸿蒙开发者社区

调用HarmonyOS NEXT系统’​​@kit.MediaLibraryKit​​’组件的photoAccessHelper,拉起图片选择器。

跳转页面,使用ArkUI安全控件和showAssetsCreationDialog接口实现保存图片功能。

3.9.3 联系人picker工具

调用HarmonyOS NEXT系统’​​@kit.ContactsKit​​’组件的contact,拉起联系人选择器。

3.9.4 卡证picker工具

跳转页面,在ArkUI中调用HarmonyOS NEXT系统’​​@kit.VisionKit​​’组件的CardRecognition,实现卡证识别。

3.9.5 文档扫描picker工具

跳转页面,在ArkUI中调用HarmonyOS NEXT系统’​​@kit.VisionKit​​’组件的DocumentScanner,实现文档扫描。

3.9.6 摄像机picker工具

调用HarmonyOS NEXT系统’​​@kit.CameraKit​​’组件拉起系统摄像机。

3.9.7 扫码picker工具

调用HarmonyOS NEXT系统’​​@kit.ScanKit​​’组件实现扫码。

3.9.8 剪贴板picker工具

跳转页面,使用ArkUI的安全控件组件,实现获取剪贴板内容。


原文链接:​​华为开发者文章​


更多问题可关注:

鸿蒙游戏官方网站:​​已有游戏移植-鸿蒙游戏-华为开发者联盟​

公开课:​​华为开发者学堂​

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
收藏
回复
举报
回复
    相关推荐