微信小游戏一经推出就受到了许多开发者的关注,目前已有2000多款作品上线。我们也在第一时间推出了微信小游戏适配解决方案,并持续优化改进,同时整理发布了多篇关于使用白鹭引擎开发微信小游戏的FAQ文章(详情可查看白鹭引擎公众号历史消息),但仍有部分新手开发者遇到了一些开发问题。为此我们为这些开发者梦整理出了近期常见的小游戏开发问题,以供大家参考。后续,我们还将持续的整理相关内容,帮助开发者们更好更快的寻找到问题及解决办法。
- 微信公众号可以关联或跳转微信小游戏吗?
答:微信公众号可以跳转小游戏。实现方法与小程序跳转差不多。首先需要先在公众号后台选择“小程序管理”,添加要关联的小游戏。
小程序管理界面如下:
第二步,选择“自定义菜单”绑定关联的小游戏。
自定义菜单界面如下:
第三步,若要识别玩家来源,是从哪个公众号关联来的,可以添加参数。
在自定义菜单中,找到“小程序路径”,填写上参数地址,格式为“?spid=XXXXX ”。
然后小游戏启动的时候通过wx.getLaunchOptionsSync()获得参数(返回scene值)。
- 调用egret.ExternalInterface.call就会出错,为了接入渠道的sdk,把启动的activity改掉了。
答:这个报错不会影响app运行,我们在下一个版本里就会解决这个问题,使用新版本则不会出现类似报错。
- 由于浮点数运算的原因,是不是没法保证同样的两个条件,最终结果都是不一致的?
答:确实由于是浮点数运算的原因,导致两个结果不一致。两种解决办法:1. 结果取整数后再比较,但是这样误差很大。2.设阈值,两个结果相减,小于0.1就判断两者相等。(推荐第二种方法)
4.用物理引擎的话,从输入到得到最终结果中间有一个过程,那中间的物理表现会出现明显的差异吗?或者虽然有浮点数的精度问题,但其实差异不明显?
答:需要分辨游戏类型, 一般2D小游戏,差异不会很明显,例如像最强弹球类游戏,差异就不明显。
5.对接小游戏时报错,第三方脚本出现错误
答:在使用Asset Manager之前,需要先加载配置文件,然后再用getResByUrl。若已经 加载了配置文件,可检查一下小游戏支持库版本是否是最新版本。
微信报错都是第三方脚本错误,但是还要看具体报错原因,例如下面这个报错,就不是未加载配置文件造成的。可能原因是漏配了Tween。
6.反复打开一个界面时,并没有重新加载图集,但在移除界面时又进行释放操作,且这个界面本身不存在内存泄漏问题,是什么原因呢?
答:可以在加载和释放的地方打日志确认。
以上是我们本期整理的几个常见的小游戏开发问题,如果您有遇到类似问题请参见答案,若遇其他开发问题请您移步白鹭官方社区进行提问,或者加入白鹭小游戏开发者交流微信群以获得更多专业指导与技术支持。