cocos2d-js 动态生成二维码

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

背景

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

    解决思路

    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相关文章