canvas双重缓冲

let cvs = document.getElementById("cvs");        //获取原始画布

let ctx = cvs.getContext('2d');

/* 创建双缓所需画布 */
let createCtx, createCvs;
(function () {
//创建临时画布
createCvs = document.createElement('canvas');

createCtx = createCvs.getContext('2d');

//设置临时画布大小
createCvs.width = 800;
createCvs.height = 600;
})();
function doubleSlow(theCanvas) {
let pen = theCanvas.getContext("2d");
pen.clearRect(0, 0, theCanvas.width, theCanvas.height);

// 双缓冲绘制 先画到临时 canvas
createCtx.save();
createCtx.beginPath();
array[i].draw(createCtx);
createCtx.restore();
// 再转到正式 canvas
pen.save();
pen.drawImage(createCvs, 0, 0, createCvs.width, createCvs.height);
pen.restore();

// 删除缓冲内容后 再清除缓冲
createCtx.clearRect(0, 0, createCvs.width, createCvs.height);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值