一、微信小游戏开发 --- 初次在微信开发者工具里跑Egret小游戏项目
引擎4.0.3的项目转5.2.3小游戏项目目前遇见的问题,通过上面文档都能解决(可能还可能由于是个小单机游戏涉及面不太广的原因)。
转是不可能直接转的(直接项目升级是不要想了),所以是新建了一个5.2.3的项目并把4.0.3的代码资源拷了进去。
简要列举下问题及解决方法(从以上两个文档中摘取及自己遇见的若干):
1,微信工具提示showAll模式错误;
在egret项目中修改index.html的适配模式为fixedWidth。
2,开发者并且使用微信小游戏后台的appid(正式id)后,微信开发工具提示找不到app.json(5.2.3发布的微信小游戏项目里并无该文件)
在微信小游戏后台的设置->基本设置里,设置小程序的服务类目必须是游戏
3,使用egret.getDefinitionByName()时找不到类
需要将要反射的类挂载到 window 对象下,例如有个 class People{} 类,需要添加代码 window[“People”] = People;即
class People{
}
window[“People”] = People。
使用自定义控件时,控件类亦此操作。
4,包体超过要求的4M
暂时使用的是部分资源放外部web服务器上,服务器必须有备案
await RES.loadConfig("resource/default.res.json", "resource/");
await RES.loadConfig("https://***/**/resource/default11.res.json", "https://***/**/resource/");//加载包外资源配置文件
await this.loadTheme();
default11.res.json中配置的即为放在web服务器上加载的资源。
5,若在微信开发工具上成功运行,但在无改变代码情况下待会儿后运行报错,重启工具......
6,简单显示项目自带的示例排行榜
showRank为自定义函数,在项目中调用(方式与getUserInfo相同)
7、使用发布命令:egret publish --target wxgame,打包后的小游戏项目与
发布的相比,体积上要小很多
而且在微信开发工具上打开很快,第二种可能因为俩js文件太大,偶尔需要相对很长时间。
8、返回前台(游戏激活),在游戏项目中主要UI层加监听
platform.onShow(this.onshow, this);
微信项目中加
onShow(fun, obj) {
wx.onShow(function () {
fun.call(obj);
})
}
9、排行榜上传数据时(须在通过微信审核后才能配置上报字段),参考
http://forum.cocos.com/t/topic/57106/17
上传时:
/** data[{"key":"newScore","value":"450"}]*/
setUserCloudStorage(data) {
return new Promise((resolve, reject) => {
console.log("data" + JSON.stringify(data));
wx.setUserCloudStorage({
KVDataList: data,
success: function(res) {
console.log(res);
},
fail: function(res) {
console.log(res);
},
complete: function(res) {
console.log(res);
}
})
})
}
获取列表时(必须在开放数据域,参考:https://developers.weixin.qq.com/minigame/dev/tutorial/open-ability/open-data.html):
wx.getFriendCloudStorage({
"keyList": ["newScore"],
success: (data1) => {
console.log(data1);
},
fail: () => {
console.log("获取列表3失败");
},
complete: () => {}
})
待补充;
注意:微信后台的小游戏项目信息务必完整,避免微信工具调试时不必要的错误。