cocos2d-js 动态生成二维码

前端之家收集整理的这篇文章主要介绍了cocos2d-js 动态生成二维码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

背景

  • cocos2d-js 开发的游戏
  • 游戏内需要动态生成一个二维码
  • 游戏多平台,所以希望这个内容可以在 js 中完成

解决思路

  1. 查了一些资料,大部分都是针对 cocos2d-x 的
  2. 有一篇文章 写的是 html 版本的方法,但我需要的是纯 js 版的,因为我们项目最后会用通过 jsb 导出为个平台原生项目,而不是网页应用,pass
  3. 不过看了上面的内容还是受到了一些启发的,比如,二维码不过是一张图片,我只要可以生成二维码图片,然后放到界面上不就可以了(废话)
  4. 有了思路其实就简单了,生成 base64 编码的二维码图片,用这些编码初始化 Sprite,加入 layer,搞定

具体步骤

  1. 这里 下载生成二维码的库文件
  2. jrQrcode-master/dist 里面的两个文件引入到 cocos2d-js 项目中
  3. 在需要添加二维码的地方添加如下代码

    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); // myLayer 就是你要添加二维码的 layer
       });
  4. 大功告成

总结

这个问题复杂就复杂在二维码要求是动态的,如果是一个普通的扫码下载什么的,直接弄一张图片,然后在界面上添加 Sprite 即可。

如果有需要的同学,可以根据自己的需求选择。

猜你在找的Cocos2d-x相关文章