试过了,一样的,使用的最新的1.4.0版本
麻烦你把项目发下,你的方法我也没有成功
assets.zip (10.7 KB)
lib下的qrcode脚本是生成二维码的算法,需要导入为插件。
QRCode脚本负责绘制二维码,因为drawcall太高,代码我简单改了下
降低Graphics的drawcall,参见我另一个帖子:Creator1.4 : 单个Graphics的DrawCall数很多是什么问题?
5赞
可以了,但上下需要反转一下,不过不影响使用都能扫出来。
有办法再贴一张logo图吗?
你直接在二维码上面加上logo图片就行了 大小不要超过二维码的40%就行
打包到微信开发者工具不能用吗?
打包到微信开发者程序中能正常运行吗
这个H5和原生都可以用吗
mark~必须mark
maek
qrcode导入插件, new QRCode(-1, QRErrorCorrectLevel.H)报错,QRCode引用自哪里
先赞 后 mark ,顺便 拍个马屁 大佬NB
Hi, how to use please!
let node = this.views["qr_code_node"]
var qrcode = new QRCode(-1, QRErrorCorrectLevel.H);
qrcode.addData('http://www.baidu.com');
qrcode.make();
var ctx = node.getComponent(Graphics)!;
ctx.fillColor = Color.BLACK;
var tileW = node.getComponent(UITransform)!.width / qrcode.getModuleCount();
var tileH = node.getComponent(UITransform)!.height / qrcode.getModuleCount();
// draw in the Graphics
for (var row = 0; row < qrcode.getModuleCount(); row++) {
for (var col = 0; col < qrcode.getModuleCount(); col++) {
if (qrcode.isDark(row, col)) {
var w = (Math.ceil((col + 1) * tileW) - Math.floor(col * tileW));
var h = (Math.ceil((row + 1) * tileW) - Math.floor(row * tileW));
ctx.rect(Math.round(col * tileW), Math.round(row * tileH), w, h);
ctx.fill();
} else {
// ctx.fillColor = cc.Color.WHITE;
}
var w = (Math.ceil((col + 1) * tileW) - Math.floor(col * tileW));
}
}
}
1赞
真是个好哥哥