微信小游戏开发(7)-支持情况和运行环境

#一、支持情况

基本上所有基于HTML5的游戏引擎都是依赖于浏览器环境提供的BOM和DOM API,但是小程序是一个不同于浏览器的JavaScript运行环境,没有BOM和DOM API。因此如果要在小游戏中使用引擎,需要对引擎进行改造。

目前,Cocos,Egret,Laya 已经完成了自身引擎及其工具对小游戏的适配和支持,对应的官方文档也对接入小游戏的开发做了介绍,具体可查阅官方文档。

Unity目前还没有对小游戏进行适配。不过小游戏提供了对大部分Canvas 2d和WebGL 1.0 特性的支持,有能力的开发者可以自行适配。

#二、小游戏是一个不同于浏览器的运行环境

无论是怎样的引擎,最终在游戏运行时所做的大部分事情都是随着用户的交互更新画面和播放声音。

小游戏的开发语言是JavaScript,那么引擎在底层就需要通过JavaScript调用绘制API和音频API。

一段JavaScript代码在运行时可以调用API是依赖于宿主环境的。我们最常用的console.log甚至不是JavaScript语言核心的一部分,而是浏览器这个宿主环境提供的。

常见的宿主环境有浏览器、Node.js等。浏览器有BOM和DOM API,而Node.js则没有;Node.js有fs、net等Node.js核心模块提供的文件、网络API,而浏览器则不具备这些模块。

小游戏的运行环境是一个不同于浏览器的宿主环境,没有提供BOM和DOM API,提供的是wx API。通过wx API开发者可以调用Native提供的绘制、音视频、网络、文件等能力。

如果你想创建一个画布,你需要调用wx.createCanvas()


let canvas = wx.createCanvas();

let context = canvas.getContext('2d');
复制代码

如果你想创建一个音频对象,你需要调用wx.createInnerAudioContext()


let audio = wx.createInnerAudioContext()

audio.src = 'audio/bgm.mp3';

audio.play();
复制代码

如果你想获取屏幕的宽高,你需要调用wx.getSystemInfoSync()


let { screenWidth, screenHeight } = wx.getSystemInfoSync();

console.log({ screenWidth, screenHeight })
复制代码

如果您不习惯使用wx API,而是想要通过BOM和DOM API 来调用,那么建议您加入上一节中讲述的Adapter。

本节内容就为大家介绍到这里,下一节我们将为大家介绍模块化的相关内容。

学习是一条令人时而喜极而泣,时而郁郁寡欢的道路。如果您觉得这篇文章对您有所帮助,请您酌情赞赏!

你可能感兴趣的:(微信小游戏开发(7)-支持情况和运行环境)