HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

基于目前uni-id角色管理的分享

目前角色每个会员可以同时拥有多个,如果对角色进行分类,分别为会员类型和管理类型,会员类型每个会员只能拥有一个,管理类型可以同时拥有多个,同时可以设置一个默认的会员类型角色,这样注册进来的,就可以给默认的会员类型角色。按照这样改进的话,基本就完美,就算一个会员拥有管理类型的角色之后,我们把他撤了,他也还是一个正常的会员类型角色。这样子角色的设计层次感更强,分工更加明确。准备基于这个想法,进行改造。只需给角色增加一个类型字段和一个是否默认字段

继续阅读 »

目前角色每个会员可以同时拥有多个,如果对角色进行分类,分别为会员类型和管理类型,会员类型每个会员只能拥有一个,管理类型可以同时拥有多个,同时可以设置一个默认的会员类型角色,这样注册进来的,就可以给默认的会员类型角色。按照这样改进的话,基本就完美,就算一个会员拥有管理类型的角色之后,我们把他撤了,他也还是一个正常的会员类型角色。这样子角色的设计层次感更强,分工更加明确。准备基于这个想法,进行改造。只需给角色增加一个类型字段和一个是否默认字段

收起阅读 »

18年开始用的,算老用户吧!大家来夸夸DCLOUD吧!

uni_app

搞第一个项目的时候DC,还没H5!当时说H5还在开发,反正这个项目是赶上了。
最近搞项目,回来看了下!只能说DCo( ̄▽ ̄)d,真香!
上学的时候老师说微软啥啥都不行,就是文档牛逼 其实 我是没啥感觉(一直没看过(^o^)/~)
最近翻DC文档发现这货的文档是0ДQ 写文档的(大哥/大姐) 给你们点36个赞 (•̀∀•́)棒。

继续阅读 »

搞第一个项目的时候DC,还没H5!当时说H5还在开发,反正这个项目是赶上了。
最近搞项目,回来看了下!只能说DCo( ̄▽ ̄)d,真香!
上学的时候老师说微软啥啥都不行,就是文档牛逼 其实 我是没啥感觉(一直没看过(^o^)/~)
最近翻DC文档发现这货的文档是0ДQ 写文档的(大哥/大姐) 给你们点36个赞 (•̀∀•́)棒。

收起阅读 »

3.7.8Hx更新失败

扩展代码提示

更新不成功,一直提示更新失败。

3.7.8无代码提示

更新不成功,一直提示更新失败。

3.7.8无代码提示

node-sass 报错:ValidationError: Invalid options object. Sass Loader

ValidationError: Invalid options object. Sass Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'additionalData'. These properties are valid: object { implementation?, sassOption

两种解决办法:
1.降sass-loader的版本

  1. loaderOptions: {
    sass: {
    prependData: xxx.scss";
    }
    },
    版本不一样,就不一定是prependData,
    可能是以下的值
    object { implementation?, sassOptions?, additionalData?, sourceMap?, webpackImporter? }
    根据实际情况修改

corejs的问题:
elementui是使用corejs@2.x,
有library文件夹的一般是2.x的,版本越高,兼容的js新特性越多,根据实际情况升降corejs的版本

继续阅读 »

ValidationError: Invalid options object. Sass Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'additionalData'. These properties are valid: object { implementation?, sassOption

两种解决办法:
1.降sass-loader的版本

  1. loaderOptions: {
    sass: {
    prependData: xxx.scss";
    }
    },
    版本不一样,就不一定是prependData,
    可能是以下的值
    object { implementation?, sassOptions?, additionalData?, sourceMap?, webpackImporter? }
    根据实际情况修改

corejs的问题:
elementui是使用corejs@2.x,
有library文件夹的一般是2.x的,版本越高,兼容的js新特性越多,根据实际情况升降corejs的版本

收起阅读 »

原生子窗口这种垃圾玩意真的别用了,真他妈恶心人,bug一堆不解决,还好意思推荐使用

subnvue

原生子窗口这种垃圾玩意真的别用了,真他妈恶心人,bug一堆不解决,还好意思推荐使用

原生子窗口这种垃圾玩意真的别用了,真他妈恶心人,bug一堆不解决,还好意思推荐使用

uni-file-picker 尼玛也太难用了

人家element ui的上传组件不见你这么难用

人家element ui的上传组件不见你这么难用

经验分享:如何在安卓下将云打包后的app设置为laucher应用

launcher

有时候,比如公司像做一个平板应用,定制系统界面,这个时候就需要做一个laucher界面了,这个功能并不复杂,只需要修改一下AndroidManifest.xml的配置。

但是uniapp并没有提供相关的功能,离线打包又会比较繁琐,尤其涉及使用了其他原生插件的时候,所以我才用了另一种思路。

先反编译安卓apk,得到源码包后,修改AndroidManifest.xml里面的配置,再回编译源码得到一个apk,最后再对apk签名,最后就得到了一个laucher包了

安装后,首次点回到桌面的时候,会提示你是否设置为系统默认laucher了。

环境准备:安装jdk1.8(也叫java8)nodejs14以上
apk包:uni云打包后的正式apk
tools文件包下载地址:https://pan.baidu.com/s/16d8sZE4s1-k5c5SCsnHcSQ,文件提取码:4g9b
下载文件包解压后如图:

图中app.apk就是你云打包后的安卓包,按此命名放在这个位置。

在当前目录执行shell.js脚本:node shell.js,源码如下图:


由于我本机存在多个java版本,所以我配置了java1d8表示运行的jdk1.8,如果你本机只有一个jdk1.8,请将此处修改为java即可。

执行完毕之后,Auto-Sign/目录下会有一个update_signed.apk的文件,这就是你最终的laucher包

(未在windows环境下测试过,mac和liunx下没有问题)

(免责条款:反编译和回编译均使用了第三方包,如果使用出现了问题,本人盖不负责,请自行斟酌)

继续阅读 »

有时候,比如公司像做一个平板应用,定制系统界面,这个时候就需要做一个laucher界面了,这个功能并不复杂,只需要修改一下AndroidManifest.xml的配置。

但是uniapp并没有提供相关的功能,离线打包又会比较繁琐,尤其涉及使用了其他原生插件的时候,所以我才用了另一种思路。

先反编译安卓apk,得到源码包后,修改AndroidManifest.xml里面的配置,再回编译源码得到一个apk,最后再对apk签名,最后就得到了一个laucher包了

安装后,首次点回到桌面的时候,会提示你是否设置为系统默认laucher了。

环境准备:安装jdk1.8(也叫java8)nodejs14以上
apk包:uni云打包后的正式apk
tools文件包下载地址:https://pan.baidu.com/s/16d8sZE4s1-k5c5SCsnHcSQ,文件提取码:4g9b
下载文件包解压后如图:

图中app.apk就是你云打包后的安卓包,按此命名放在这个位置。

在当前目录执行shell.js脚本:node shell.js,源码如下图:


由于我本机存在多个java版本,所以我配置了java1d8表示运行的jdk1.8,如果你本机只有一个jdk1.8,请将此处修改为java即可。

执行完毕之后,Auto-Sign/目录下会有一个update_signed.apk的文件,这就是你最终的laucher包

(未在windows环境下测试过,mac和liunx下没有问题)

(免责条款:反编译和回编译均使用了第三方包,如果使用出现了问题,本人盖不负责,请自行斟酌)

收起阅读 »

midButton只能作为非tabbar页面使用 吗?

我在pages.json中使用了midButton,页面也可以正常显示样式
但是我发现在app.vue中使用uni.onTabBarMidButtonTap的时候,只支持uni.navigateTo跳转,说明midButton这个键所跳转的页面只支持非tabbar!
使用uni.switchTab会无法跳转,报错:switchTab:fail can not switch to no-tabBar page

假设又将页面配置到list当中的话,就会直接覆盖midButton,就和没有写的效果一样。
感觉自定义度非常有限。

建议:假设需求是tabbar中部突起的那个页面要设置成tabbar页面的,采用自定义tabbar的方式。
midButton试了半天不符合abbar页面需求。

继续阅读 »

我在pages.json中使用了midButton,页面也可以正常显示样式
但是我发现在app.vue中使用uni.onTabBarMidButtonTap的时候,只支持uni.navigateTo跳转,说明midButton这个键所跳转的页面只支持非tabbar!
使用uni.switchTab会无法跳转,报错:switchTab:fail can not switch to no-tabBar page

假设又将页面配置到list当中的话,就会直接覆盖midButton,就和没有写的效果一样。
感觉自定义度非常有限。

建议:假设需求是tabbar中部突起的那个页面要设置成tabbar页面的,采用自定义tabbar的方式。
midButton试了半天不符合abbar页面需求。

收起阅读 »

朋友们,ChatGPT式的人工智能出现了,会对我们爱好代码的朋友们产生什么影响呢?

ChatGPT

是不是以后,通过大白话直接AI来生成,没有我们什么事了?

是不是以后,通过大白话直接AI来生成,没有我们什么事了?

实用小程序源码下载开发(附2万套uniapp小程序游戏源代码)

小程序

  从技术上讲,微信小程序游戏框架在小程序框架中加入了程序游戏库API。因此,小程序游戏只能在小程序环境下运行,既不是原生程序游戏也不是HTML5程序游戏。也就是说,小程序游戏与HTML5程序游戏紧密相关,面向HTML5程序游戏开发者——很大程度上采用了WebGL、JavaScript等HTML5技术,将HTML5程序游戏转为微信小程序游戏的工作量降到最低。
  
  源码:casgams.top/gm
  
  玩家主要通过以下渠道进入小程序游戏:
  
  ●好友或微信群邀请
  
  ●扫描程序游戏二维码
  
  ●最近玩过的程序游戏显示在小程序历史记录中,或者拉下聊天收件箱后
  
  ●发现 > 小程序,然后搜索小程序游戏
  
  ●发现 > 程序游戏 > 我的小程序游戏,然后搜索“小程序游戏”
  
  搜索“小程序游戏”(小程序游戏)将显示小程序游戏的简短列表。单击“显示完整列表”会将您带到一个隐藏的小程序游戏菜单,该菜单按最热门的程序游戏和朋友正在玩的程序游戏分类。
  
  简而言之,微信小程序游戏:
  
  1、在微信环境下运行
  
  2、使用 HTML5 和相关网络技术
  
  3、提供类似于原生程序游戏的程序游戏体验
  
  ●微信小程序游戏相对于其他类型的程序游戏有很多优势。两个最大的优势是*稳定性和可管理性。
  
  ●与原生程序游戏相比,微信的应用程序作为一个独立的平台,将用户留在微信生态系统中。
  
  结论
  
  微信小程序游戏结合了强大的获取渠道、社交程序游戏和分享以及庞大的用户群——同时无需下载任何东西即可享受近乎原生的应用体验。
  
  所有这些特性都显示了微信小程序游戏的光明前景。现在就轮到你们这些程序游戏开发者利用这个机会,打造最适合微信用户的程序游戏了!
  
  微信小程序游戏开发基础
  
  上文提到,小程序游戏的开发涉及到HTML5,熟悉HTML5的开发者上手很快——短时间内将HTML5程序游戏变成微信小程序游戏。
  
  具体来说,微信小程序游戏的开发技术可以分为三个部分:
  
  相比HTML5程序游戏,小程序游戏玩家不会被弹窗广告打扰,体验更佳。
  
  微信小程序游戏环境的一大优势是兼容HTML5程序游戏生态。也就是说,HTML5程序游戏可以更方便的转化为微信小程序游戏,不管你用什么程序游戏引擎开发的。这使得微信小程序游戏能够利用现有的大型 HTML5 生态系统的力量。
  
  除了技术优势外,微信小程序游戏还利用了这样一个事实,即它是中国最受欢迎的社交平台,能够让应用病毒式传播。小程序游戏设计的一个关键部分是利用微信的社交特性来获取新用户。
  
  微信小程序游戏主要通过好友推荐或分享链接被发现。这使得小程序游戏与以往的网页程序游戏通过广告或传统渠道获取用户到应用商店或下载链接有很大不同。
  
  第1部分。底层技术
  
  一、编程语言——微信小程序游戏只支持JavaScript(Web的主要编程语言),但也支持可以编译成JavaScript的语言,如TypeScript、CoffeeScript。
  
  其次是微信小程序游戏框架支持的JavaScript API(应用程序接口):Canvas 2D和WebGL 1.0。这些 API 中的任何一个都可用于绘制图形、创建动画或实时渲染。但是您不想同时使用一种以上的技术。另请注意,只有 WebGL 支持 3D 渲染。
  
  第2部分。中间件:程序游戏引擎
  
  直接使用 Canvas 2D 或 WebGL 制作小程序游戏有一个陡峭的学习曲线。由于您可能不想花费超过一年的时间来开发一款程序游戏,因此使用 HTML5 程序游戏引擎是一个非常明智的选择。程序游戏引擎提供的高级功能可以大大降低开发者的入门门槛,缩短开发时间。
  
  国内三大程序游戏引擎厂商Cocos Creator、Egret、Laya已经支持微信小程序游戏。目前国外流行的 HTML5 程序游戏引擎如Phaser.js、Three.js还没有直接支持,但还是可以适配使用(比如这个Phaser port for Mini Games)。
  
  三、微信SDK(软件开发包)
  
  微信小程序游戏为开发者提供了丰富的微信登录、分享、排行榜等社交功能的使用工具。
  
  了解微信小程序游戏底层结构
  
  小程序游戏既不是原生程序游戏,也不等同于 HTML5 程序游戏。但是,它的开发环境与这两种类型的程序游戏有关。小程序游戏使用HTML5相同的渲染接口。
  
  小程序游戏实际上运行在微信App的原生环境中。程序游戏的JavaScript代码不是在浏览器环境中执行的,而是在移动设备的JS VM层上的一个独立的JavaScript引擎。在 Android 平台上,它使用Google 的 V8 引擎,而在 iOS 上,它使用苹果的 JavaScript Core 引擎。
  
  当然,JS(JavaScript)引擎只负责JS逻辑的编译和运行,并没有渲染接口。
  
  小程序游戏开发者如何将他们的程序游戏连接到渲染界面,以及微信框架中提供的许多其他功能?
  
  引入了 JS-Native 脚本绑定。该技术可以桥接原生语言接口(iOS / Android 库)到脚本接口(JavaScript 库),并将 API 调用从脚本层转发到原生层以使用原生平台功能。
  
  微信JavaScript SDK已经在使用绑定技术,让微信公众号和小程序通过JavaScript API实现相册、传感器等原生设备功能。
  
  微信小程序游戏还使用绑定技术将原生平台(iOS / Android)的服务:渲染、用户数据、网络、音频和视频连接到 JavaScript 环境。小程序游戏层模块就是这样访问上图中的原生函数的。
  
  通过支持 JavaScript 环境,微信提供了一个框架,可以将 HTML5 程序游戏转换为微信小程序游戏。但一些 API 兼容性问题可能是由于缺乏真正的浏览器环境和 DOM 而引起的。
  
  为了降低 HTML5 程序游戏转小程序游戏的成本,微信团队还提供了一个“适配”脚本来支持浏览器 API。支持 HTML5 程序游戏所需的大多数浏览器功能 - 从而提高兼容性。
  
  Adapter 脚本提供了 HTML5 程序游戏所依赖的大多数浏览器界面。
  
  上图展示了微信小程序游戏中开发者可用的所有接口
  
  ●渲染界面
  
  ●浏览器适配器接口
  
  ●微信服务的微信API
  
  请注意,Browser Adapter 接口不再由官方维护,因此任何附加功能都由开发人员决定。而且它的大部分依赖DOM的功能在小程序游戏环境下是不起作用的。
  
  使用程序游戏引擎
  
  由于开发栈的复杂性,一种选择是使用程序游戏引擎开发小程序游戏。程序游戏引擎不仅将常用的程序游戏功能封装在一个高阶接口上,还试图解决H5浏览器程序游戏与微信小程序游戏环境不兼容的问题。
  
  开发人员可能需要使用不同层次的库——这取决于程序游戏的复杂性。使用程序游戏引擎时,它会为开发人员提供高级功能,同时调用这些相同的库。然后,开发人员需要学习引擎,并处理引擎未提供所有所需功能的情况。
  
  以下是程序游戏引擎提供的好处摘要:
  
  框架特点:
  
  ●对常见程序游戏开发特性的高度封装
  
  ●资源加载
  
  ●事件处理
  
  ●媒体和广播
  
  ●屏幕显示与控制
  
  ●用户输入
  
  ●附加接口,例如用于 TileMap 的 DOM 解析器
  
  编辑:
  
  ●优化程序员、设计师和经理之间的协作。
  
  ●一个好的程序游戏编辑器可以显着缩短开发周期。
  
  一般的:
  
  ●优秀的程序游戏引擎可以提供高设备兼容性和稳定的性能;
  
  ●跨平台程序游戏引擎可以让开发者同时发布HTML5程序游戏、微信小程序游戏和原生程序游戏。
  
  高效的程序游戏编辑器可以降低开发成本和维护成本。对于程序游戏开发商而言,这些因素可能是盈利的关键。
  
  4.开始搭建调试小程序游戏!
  
  Step 1. 获取微信开发者工具
  
  微信小程序开发者工具提供了编写、调试和运行小程序游戏的框架。在微信开发者网站这里下载。
  
  首次运行开发者工具时,系统会要求您使用微信帐号登录。然后您将看到用于创建您的第一个项目的表单。
  
  点击:“体验”右侧的“小程序游戏”(尝试:小程序游戏)
  
  并为源代码选择一个位置项目目录,然后将您的项目命名为项目名称。
  
  ●页面顶部是工具栏。它可以配置、编译、预览和部署程序游戏。
  
  ●左边是模拟器。程序游戏随着代码的变化而运行和更新。
  
  ●右上角是代码编辑器。
  
  ●编辑器的左侧是文件菜单。它列出了项目文件。
  
  ●右下方是调试器。它的功能类似于Chrome开发者工具!
  
  Step 2. 微信小程序游戏配置及文件导入
  
  在微信小程序游戏工程中,添加配置文件project.config.json和game.json。
  
  ●project.config.json定义您的程序游戏 AppID、名称、版本、IDE 设置和运行时配置。
  
  ●game.json提供应用程序和代码的内部配置,例如设备方向和网络超时。这个类似于微信小程序中的app.json文件!
  
  由于小程序游戏不支持 HTML 文件,入口在game.js中。您可以通过使用 require 函数将程序游戏引擎和程序游戏脚本引入game.js文件来启动程序游戏。注意: require函数的使用遵循Node.js的规范!
  
  步骤 3. 编译、测试和提交
  
  微信开发工具会监控脚本和配置的变化,实时更新程序游戏。您也可以点击页面顶部的编译按钮手动重新编译。当您需要在智能手机上预览程序游戏和测试时,您可以点击预览按钮生成二维码并扫描以玩程序游戏!
  
  生成二维码的过程其实就是压缩一个小包上传到微信CDN,所以需要一定的时间。
  
  如果微信小程序游戏遵循与小程序相同的分发规则,那么微信可能会在小程序游戏提交后对其进行审核——然后才能公开发布。也会有关于如何像小程序一样发现或分享小程序游戏的规则。

继续阅读 »

  从技术上讲,微信小程序游戏框架在小程序框架中加入了程序游戏库API。因此,小程序游戏只能在小程序环境下运行,既不是原生程序游戏也不是HTML5程序游戏。也就是说,小程序游戏与HTML5程序游戏紧密相关,面向HTML5程序游戏开发者——很大程度上采用了WebGL、JavaScript等HTML5技术,将HTML5程序游戏转为微信小程序游戏的工作量降到最低。
  
  源码:casgams.top/gm
  
  玩家主要通过以下渠道进入小程序游戏:
  
  ●好友或微信群邀请
  
  ●扫描程序游戏二维码
  
  ●最近玩过的程序游戏显示在小程序历史记录中,或者拉下聊天收件箱后
  
  ●发现 > 小程序,然后搜索小程序游戏
  
  ●发现 > 程序游戏 > 我的小程序游戏,然后搜索“小程序游戏”
  
  搜索“小程序游戏”(小程序游戏)将显示小程序游戏的简短列表。单击“显示完整列表”会将您带到一个隐藏的小程序游戏菜单,该菜单按最热门的程序游戏和朋友正在玩的程序游戏分类。
  
  简而言之,微信小程序游戏:
  
  1、在微信环境下运行
  
  2、使用 HTML5 和相关网络技术
  
  3、提供类似于原生程序游戏的程序游戏体验
  
  ●微信小程序游戏相对于其他类型的程序游戏有很多优势。两个最大的优势是*稳定性和可管理性。
  
  ●与原生程序游戏相比,微信的应用程序作为一个独立的平台,将用户留在微信生态系统中。
  
  结论
  
  微信小程序游戏结合了强大的获取渠道、社交程序游戏和分享以及庞大的用户群——同时无需下载任何东西即可享受近乎原生的应用体验。
  
  所有这些特性都显示了微信小程序游戏的光明前景。现在就轮到你们这些程序游戏开发者利用这个机会,打造最适合微信用户的程序游戏了!
  
  微信小程序游戏开发基础
  
  上文提到,小程序游戏的开发涉及到HTML5,熟悉HTML5的开发者上手很快——短时间内将HTML5程序游戏变成微信小程序游戏。
  
  具体来说,微信小程序游戏的开发技术可以分为三个部分:
  
  相比HTML5程序游戏,小程序游戏玩家不会被弹窗广告打扰,体验更佳。
  
  微信小程序游戏环境的一大优势是兼容HTML5程序游戏生态。也就是说,HTML5程序游戏可以更方便的转化为微信小程序游戏,不管你用什么程序游戏引擎开发的。这使得微信小程序游戏能够利用现有的大型 HTML5 生态系统的力量。
  
  除了技术优势外,微信小程序游戏还利用了这样一个事实,即它是中国最受欢迎的社交平台,能够让应用病毒式传播。小程序游戏设计的一个关键部分是利用微信的社交特性来获取新用户。
  
  微信小程序游戏主要通过好友推荐或分享链接被发现。这使得小程序游戏与以往的网页程序游戏通过广告或传统渠道获取用户到应用商店或下载链接有很大不同。
  
  第1部分。底层技术
  
  一、编程语言——微信小程序游戏只支持JavaScript(Web的主要编程语言),但也支持可以编译成JavaScript的语言,如TypeScript、CoffeeScript。
  
  其次是微信小程序游戏框架支持的JavaScript API(应用程序接口):Canvas 2D和WebGL 1.0。这些 API 中的任何一个都可用于绘制图形、创建动画或实时渲染。但是您不想同时使用一种以上的技术。另请注意,只有 WebGL 支持 3D 渲染。
  
  第2部分。中间件:程序游戏引擎
  
  直接使用 Canvas 2D 或 WebGL 制作小程序游戏有一个陡峭的学习曲线。由于您可能不想花费超过一年的时间来开发一款程序游戏,因此使用 HTML5 程序游戏引擎是一个非常明智的选择。程序游戏引擎提供的高级功能可以大大降低开发者的入门门槛,缩短开发时间。
  
  国内三大程序游戏引擎厂商Cocos Creator、Egret、Laya已经支持微信小程序游戏。目前国外流行的 HTML5 程序游戏引擎如Phaser.js、Three.js还没有直接支持,但还是可以适配使用(比如这个Phaser port for Mini Games)。
  
  三、微信SDK(软件开发包)
  
  微信小程序游戏为开发者提供了丰富的微信登录、分享、排行榜等社交功能的使用工具。
  
  了解微信小程序游戏底层结构
  
  小程序游戏既不是原生程序游戏,也不等同于 HTML5 程序游戏。但是,它的开发环境与这两种类型的程序游戏有关。小程序游戏使用HTML5相同的渲染接口。
  
  小程序游戏实际上运行在微信App的原生环境中。程序游戏的JavaScript代码不是在浏览器环境中执行的,而是在移动设备的JS VM层上的一个独立的JavaScript引擎。在 Android 平台上,它使用Google 的 V8 引擎,而在 iOS 上,它使用苹果的 JavaScript Core 引擎。
  
  当然,JS(JavaScript)引擎只负责JS逻辑的编译和运行,并没有渲染接口。
  
  小程序游戏开发者如何将他们的程序游戏连接到渲染界面,以及微信框架中提供的许多其他功能?
  
  引入了 JS-Native 脚本绑定。该技术可以桥接原生语言接口(iOS / Android 库)到脚本接口(JavaScript 库),并将 API 调用从脚本层转发到原生层以使用原生平台功能。
  
  微信JavaScript SDK已经在使用绑定技术,让微信公众号和小程序通过JavaScript API实现相册、传感器等原生设备功能。
  
  微信小程序游戏还使用绑定技术将原生平台(iOS / Android)的服务:渲染、用户数据、网络、音频和视频连接到 JavaScript 环境。小程序游戏层模块就是这样访问上图中的原生函数的。
  
  通过支持 JavaScript 环境,微信提供了一个框架,可以将 HTML5 程序游戏转换为微信小程序游戏。但一些 API 兼容性问题可能是由于缺乏真正的浏览器环境和 DOM 而引起的。
  
  为了降低 HTML5 程序游戏转小程序游戏的成本,微信团队还提供了一个“适配”脚本来支持浏览器 API。支持 HTML5 程序游戏所需的大多数浏览器功能 - 从而提高兼容性。
  
  Adapter 脚本提供了 HTML5 程序游戏所依赖的大多数浏览器界面。
  
  上图展示了微信小程序游戏中开发者可用的所有接口
  
  ●渲染界面
  
  ●浏览器适配器接口
  
  ●微信服务的微信API
  
  请注意,Browser Adapter 接口不再由官方维护,因此任何附加功能都由开发人员决定。而且它的大部分依赖DOM的功能在小程序游戏环境下是不起作用的。
  
  使用程序游戏引擎
  
  由于开发栈的复杂性,一种选择是使用程序游戏引擎开发小程序游戏。程序游戏引擎不仅将常用的程序游戏功能封装在一个高阶接口上,还试图解决H5浏览器程序游戏与微信小程序游戏环境不兼容的问题。
  
  开发人员可能需要使用不同层次的库——这取决于程序游戏的复杂性。使用程序游戏引擎时,它会为开发人员提供高级功能,同时调用这些相同的库。然后,开发人员需要学习引擎,并处理引擎未提供所有所需功能的情况。
  
  以下是程序游戏引擎提供的好处摘要:
  
  框架特点:
  
  ●对常见程序游戏开发特性的高度封装
  
  ●资源加载
  
  ●事件处理
  
  ●媒体和广播
  
  ●屏幕显示与控制
  
  ●用户输入
  
  ●附加接口,例如用于 TileMap 的 DOM 解析器
  
  编辑:
  
  ●优化程序员、设计师和经理之间的协作。
  
  ●一个好的程序游戏编辑器可以显着缩短开发周期。
  
  一般的:
  
  ●优秀的程序游戏引擎可以提供高设备兼容性和稳定的性能;
  
  ●跨平台程序游戏引擎可以让开发者同时发布HTML5程序游戏、微信小程序游戏和原生程序游戏。
  
  高效的程序游戏编辑器可以降低开发成本和维护成本。对于程序游戏开发商而言,这些因素可能是盈利的关键。
  
  4.开始搭建调试小程序游戏!
  
  Step 1. 获取微信开发者工具
  
  微信小程序开发者工具提供了编写、调试和运行小程序游戏的框架。在微信开发者网站这里下载。
  
  首次运行开发者工具时,系统会要求您使用微信帐号登录。然后您将看到用于创建您的第一个项目的表单。
  
  点击:“体验”右侧的“小程序游戏”(尝试:小程序游戏)
  
  并为源代码选择一个位置项目目录,然后将您的项目命名为项目名称。
  
  ●页面顶部是工具栏。它可以配置、编译、预览和部署程序游戏。
  
  ●左边是模拟器。程序游戏随着代码的变化而运行和更新。
  
  ●右上角是代码编辑器。
  
  ●编辑器的左侧是文件菜单。它列出了项目文件。
  
  ●右下方是调试器。它的功能类似于Chrome开发者工具!
  
  Step 2. 微信小程序游戏配置及文件导入
  
  在微信小程序游戏工程中,添加配置文件project.config.json和game.json。
  
  ●project.config.json定义您的程序游戏 AppID、名称、版本、IDE 设置和运行时配置。
  
  ●game.json提供应用程序和代码的内部配置,例如设备方向和网络超时。这个类似于微信小程序中的app.json文件!
  
  由于小程序游戏不支持 HTML 文件,入口在game.js中。您可以通过使用 require 函数将程序游戏引擎和程序游戏脚本引入game.js文件来启动程序游戏。注意: require函数的使用遵循Node.js的规范!
  
  步骤 3. 编译、测试和提交
  
  微信开发工具会监控脚本和配置的变化,实时更新程序游戏。您也可以点击页面顶部的编译按钮手动重新编译。当您需要在智能手机上预览程序游戏和测试时,您可以点击预览按钮生成二维码并扫描以玩程序游戏!
  
  生成二维码的过程其实就是压缩一个小包上传到微信CDN,所以需要一定的时间。
  
  如果微信小程序游戏遵循与小程序相同的分发规则,那么微信可能会在小程序游戏提交后对其进行审核——然后才能公开发布。也会有关于如何像小程序一样发现或分享小程序游戏的规则。

收起阅读 »