背景
- cocos2d-js 开发的游戏
- 游戏内需要动态生成一个二维码
- 游戏多平台,所以希望这个内容可以在 js 中完成
解决思路
- 查了一些资料,大部分都是针对 cocos2d-x 的
- 有一篇文章 写的是 html 版本的方法,但我需要的是纯 js 版的,因为我们项目最后会用通过 jsb 导出为个平台原生项目,而不是网页应用,pass
- 不过看了上面的内容还是受到了一些启发的,比如,二维码不过是一张图片,我只要可以生成二维码的图片,然后放到界面上不就可以了(废话)
- 有了思路其实就简单了,生成 base64 编码的二维码图片,用这些编码初始化 Sprite,加入 layer,搞定
具体步骤
- 从 这里 下载生成二维码的库文件
- 将
jrQrcode-master/dist 里面的两个文件引入到 cocos2d-js 项目中
在需要添加二维码的地方添加如下代码 var qrData = jrQrcode.getQrBase64("中文 english 1232 : k,",{
padding: 35,width: 350,height: 350,correctLevel: QRErrorCorrectLevel.L
})
cc.loader.loadImg(qrData,{isCrossOrigin: false},function (err,img) {
var texture2d = new cc.Texture2D()
texture2d.initWithElement(img)
texture2d.handleLoadedTexture()
var qrImg = new cc.Sprite(texture2d)
qrImg.setScale(cc.contentScaleFactor())
qrImg.x = cc.visibleRect.center.x
qrImg.y = cc.visibleRect.center.y
myLayer.addChild(qrImg)
})
- 大功告成
总结
这个问题复杂就复杂在二维码要求是动态的,如果是一个普通的扫码下载什么的,直接弄一张图片,然后在界面上添加 Sprite 即可。
如果有需要的同学,可以根据自己的需求选择。
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|