前言
目前cocos官方支持微信小游戏的引擎是cocos-creator,老版的cocos2d-js并没有支持小游戏的适配,考虑到现有不少款小游戏由于迁移成本等原因,使用了cocos2d-js开发,因此编写了cocos2d-js版本插件。但问题在于目前游戏方是通过自行编写适配层或者改造底层引擎来适配微信小游戏环境,本插件不可能适配所有的游戏的适配引擎版本。该cocos2d-js版本是基于原生web引擎版本进行开发,若游戏方接入后出现适配问题,需要自行查看适配原因进行改造适配。
依赖组件配置
插件自身的渲染依赖于cocos的以下UI组件:
- ccui.ScrollView
- cc.Sprite
- cc.LayerColor,
- cc.Scale9Sprite
- cc.LabelTTF
请开发者注意引擎中这些组件的保留,否则插件无法正常显示。
脚本引入
首先将mgplugin.js放入项目存放脚本的文件夹,然后在游戏的脚本中,通过require引入模块:
const MgPlugin = require('libs/mgplugin.js');
创建实例节点并插入到游戏场景
MgPlugin是cc.LayerColor的扩展类,通过调用构造函数得到一个UI节点,传入的参数是游戏的appid和当前用户的openid:
var recommendUI = new Mgplugin.RecommendUI({
appid: 'wx234ffd5ghdsd',
openid: 'u3s54g542dxq3hnn'
});
v1.0.2
版本后,构造函数支持传入隐藏回调函数,该函数在点击插件的返回按钮隐藏时调用:
var recommendUI = new Mgplugin.RecommendUI({
appid: 'wx234ffd5ghdsd',
openid: 'u3s54g542dxq3hnn',
onHide: () => console.log('hide')
});
v1.0.7
版本开始,新增插件入口和红点显示控制功能。需要在游戏场景中创建插件入口按钮节点entrance
和红点节点reddot
,节点要求为cc.Node的类型即可。(目前尚未发布)
var recommendUI = new Mgplugin.RecommendUI({
appid: 'wx234ffd5ghdsd',
openid: 'u3s54g542dxq3hnn',
entranceNode: entrance,
reddotNode: reddot,
onHide: () => console.log('hide')
});
然后将UI节点插入到游戏场景:
this.addChild(recommendUI); // 这里this指游戏的场景节点
UI节点默认隐藏,游戏方需要提供一个入口UI按钮,在按钮的点击回调中调用下面的show方法显示插件UI:
recommendUI.show();
建议游戏方在运营管理端添加营销插件的开关配置,可以随时控制外网游戏的插件是否显示,避免突发状况影响用户体验。
数据上报验证
接入完成后需通知腾讯的产品同学(Yalihuang、linlinyang、yeetian)进行数据上报验证,验证完毕后方可发布上线。
另外,接入完成后请游戏侧进行适配测试,重点关注iphoneX适配问题。