使用Laya引擎构建鸿蒙游戏

游戏适配HarmonyOS NEXT流程如下:

image.png

适配准备

游戏适配

如果游戏中有针对不同平台进行适配的代码,需要先判断HarmonyOS NEXT平台并添加对应的适配代码。

checkHarmonyOS() {
let os = Laya.Browser.window.
conch.config.getOS();
return os == 'Conch-ohos';
}

导出HarmonyOS NEXT工程

以Laya2.0为例打包构建HarmonyOS NEXT工程:

  • 打开LayaAirIDE—>点击左上角LOGO图标—>工具—>app构建,如图所示:

cke_197.png

  • 在构建项目配置界面选择最新的Native版本(当前2.13.8)、选择项目类型(ohos),如图所示:

cke_198.png

  • 配置完成后点击开始创建可在指定的输出路径输出HarmonyOS NEXT工程项目,如图所示:

cke_199.png

  • 使用DevEco Studio工具打开并连接设备构建hap/app运行,如图所示:

cke_200.png

集成应用服务

  • 游戏点亮后,需要接入HarmonyOS NEXT平台系统能力(电量、振动器、网络等),为向玩家提供快捷、安全的登录、支付等功能,游戏需集成登录、支付等应用服务,其中游戏业务逻辑调用HarmonyOS NEXT系统接口的原理如下图所示:

image.png

  • Game Service Kit接入

​​

image.png

  • IAP Kit接入

image.png

调试上架

  • 配置证书签名信息,参考应用/元服务签名

  • 调试阶段:构建hap包进行调试功能验收,需要申请调试证书、注册调试设备、申请调试Profile,具体操作请参见调试HarmonyOS应用/元服务

  • 发布阶段:构建app包提审上架,需要申请发布证书、申请发布Profile、发布HarmonyOS应用,具体操作请参见发布应用(APP)

游戏与ArkTS接口交互

由于HarmonyOS NEXT使用的协议栈和其他系统的协议栈不同,因此游戏原有的系统适配方法在HarmonyOS NEXT平台可能不支持,需要根据当前游戏实际使用情况进行适配。

  • 在HarmonyOS NEXT工程中添加ets脚本。
  • 在ets脚本中添加需要调用的静态方法,如下示例代码:
// build-profile.json5
{
"apiType": 'stageMode',
"buildOption": {
"arkOptions": {
"runtimeOnly": {
"sources": [
"./src/main/ets/AccountDemo.ets"
]
}
},
...
}
  • 游戏中调用添加到HarmonyOS NEXT静态方法,如下示例会调用之前添加在AccountDemo.ets中的静态方法:
// 点击登录按钮
onClickLogin() {
let bridge = Laya.Browser.window.PlatformClass.createClass("entry/src/main/ets/AccountDemo");
bridge.callWithBack((result: string) => {
bridge.callWithBack((result: string) => {
// TODO 添加你的游戏逻辑
}, "login");
}, "gameServiceInit");
}
  • 在ArkTS代码中主动执行游戏JS脚本方法,如下示例会在游戏中执行alert('hello world')
// 导入laya的库文件
import laya from "liblaya.so";
function arkTsFunc(): void {
// 调用laya引擎方法在游戏侧执行JS脚本
laya.ConchNAPI_RunJS("alert('hello world')");
}
export { arkTsFunc };

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


更多问题可关注:

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

公开课:华为开发者学堂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值