信息化管理系统 | 数字孪生 · 智慧园区 · 数字大屏 | App · 微信 · 小程序 | 元宇宙 · 区块链 · 3D展厅 | 虚拟仿真系统 | 新零售电商

微信小游戏开发要点整理

那么当我们在游戏开发的时候该如果的操作呢?让我们一起和九影网络一起看下去吧~

 

坑点:

1.资源加载

2.文件名不允许使用中文名

3.文件名不允许带空格

4.配置文件不能引用同名或相同的文件

5.声音播放不能太频繁

6.fnt字体不能远程服务器加载

7.不能使用老的RES模块加载

8.exml文件不能远程加载

9.4M外的资源可以放在腾讯云对象存储中,tomcat,阿帕奇,阿里云oss,CDN都无法正常加载

10.关系链的开发数据域只能使用4M内的图片

 

1.登录

2.获取用户信息不能使用getUserInfo,需要使用createUserInfoButton创建获取用户信息按钮

3.暂时前端没有途径获取unionid,老的获取方式接口已经弃用

4.微信SDK版本在2.0.1以下和iphone7、iphone5机型上新的获取用户信息按钮无法创建,需要用老的API

 

 

1.调试

2.有时微信IDE报错缺少文件,可以在Egret Wing重新编译解决

3.开放数据域项目只能使用egret publish --target wxgame 命令编译,不然生成的库文件不是min的,放在微信工程里会超过4M大小

 

1.音频

2.不能设置音量

3.不能播放过快,不然会有声音播不出

4.不能停止后立刻播放,不然会整个游戏没声音。可以延迟100ms后播放。

5.因为不支持Dom和Bom,所以不能使用<audio>标签播放音频

 

关系链

1、开放数据域工程发布的文件内缺少文件,需要在官方给的demo里复制

2、主域内获取的window["sharedCanvas"]是以屏幕分辨率为bitmap的大小,需要自己指定宽高为自己的屏幕逻辑分辨率,在开放数据域内指定自身分辨率亲测无效

3、开放数据域里wx.getFriendCloudStorage()获取的数据包含微信排行的数据,微信默认不排序,需要手动排序<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="fd33b6d1-d54c-4d04-9682-f891ac529e03"><ac:parameter ac:name="">_GoBack</ac:parameter></ac:structured-macro>

4、wx.getFriendCloudStorage()不获取具体的排行字段,返回昵称为nickName,获取具体的字段,返回昵称为nickname

5、使用关系链的小游戏必须指定60帧,移除开放数据域的bitmap时记得停止清除bitmap图片数据的tick,避免性能消耗。

6、要移除开放数据域的bitmap操作只能在主域进行操作,开放数据域不能给主域发消息,也不能移除自身

 

六、其他

1.不能用DOM,BOM

2.不能引用index.html里写的方法

3.如果EUI里引用了另一个EUI,需要把那一个被引用的EUI暴露到全局。如被引用的EUI类名是HeadEUI,需要在类里加上window["HeadEUI"] = HeadEUI

4.右上角的分享需要自己使用 wx.showShareMenu()显示

5.所有在微信api使用的坐标都是基于手机的真实分辨率,需使用要wx.getSystemInfo(Object object)获取screenWidth等参数自行算出对应egret的逻辑分辨率

6.拉起客服微信API文档写的是openCustomerServiceConversation(Object object),实际调用的方法应该是wx.openCustomerServiceConversation(Object object)

7.微信的4M空间限制应该是按上传大小计算,代码包大小如果超过4M,只要在上传是经过微信压缩后小于4M还是可以正常使用

8.EUI的scroller比较复杂时,如包含了大量的微信头像,可以打开cacheAsBitmap降低drawcall,同时把scroller内不在显示区域的对象隐藏显示来降低三角和顶点数

 

微信API:

小游戏更新

1、小游戏右上角小圆点实际为最小化(切换到后台),重新打开不会重新加载,为热启动。

2、微信小游戏关闭(安卓后台关闭,或者调试时打开/关闭调试模式),重新打开会重新加载游戏,为冷启动。

3、只有冷启动会更新游戏内容,热启动不会更新

4、游戏内可以通过 wx.getUpdateManager()检测更新,有更新后可以使用applyUpdate 进行强制更新,更新会重启小游戏

 

1.本地文件

2.代码块文件(代码,图片在工程内的文件)大小限制4M,按微信算法计算大小,更新必须提交新版本

3.本地临时文件,网络下载的文件都是本地临时文件,游戏重新打开会清除

4.本地缓存文件(官方已经弃用),可以由本地临时文件使用FileSystemManager.saveFile()转换为本地缓存文件,使用FileSystemManager.getSavedFileList(Object object)获取。重开游戏不会清除。只能通过临时文件转换,不能自定义存储

5.本地用户文件,以用户和小程序区分空间,可以自定义存储。

6.本地文件(应该不区分本地文件类型)每个小程序空间为50M

 

1.关系链

2.在主域和开放数据域可以使用wx.setUserCloudStorage()设置用户数据,使用wx.removeUserCloudStorage() 删除用户数据

3.在开放数据域可以使用wx.getUserCloudStorage、wx.getFriendCloudStorage() 和 wx.getGroupCloudStorage()获取用户数据列表

4.开放数据域是一个独立的js作用域,需要在微信工程里创建目录并在工程里指定openDataContext路径

5.egret里可以开另一个工程写开放数据域显示,再把发布的工程拷贝到主域的工程里

6.主域使用OpenDataContext.postMessage()向开放数据域发送消息,开放数据域 使用wx.onMessage()侦听消息

 

那么游戏开发哪家好?
   游戏开发请找上海九影,九影网络专注“互动 · 游戏 · 营销 · 系统”开发10余年,提供:休闲娱乐游戏、教育教学游戏、互动对战游戏、微信/小程序、品牌营销H5、移动App、政企信息化系统、三维展览展示、元宇宙/ARVR体感体感等服务。

手机:15000568602(微信同号)