Javascript 如何使用Konva.js将一个图像复制/粘贴到另一个图像?
我正在构建一个类似于俄罗斯方块的游戏,但它的方块移动平稳(逐像素)。 目前,我为每个新块创建了一个单独的KonvaJavascript 如何使用Konva.js将一个图像复制/粘贴到另一个图像?,javascript,html5-canvas,konvajs,Javascript,Html5 Canvas,Konvajs,我正在构建一个类似于俄罗斯方块的游戏,但它的方块移动平稳(逐像素)。 目前,我为每个新块创建了一个单独的Konva图像对象: let block = new Konva.Image({ x: 200, y: 0, transformsEnabled: 'position', listening: false, image: images.tiles, c
图像
对象:
let block = new Konva.Image({
x: 200,
y: 0,
transformsEnabled: 'position',
listening: false,
image: images.tiles,
crop: {
x: colorindex * 128,
y: shapeindex * 128,
width: 128,
height: 128
},
width: 128,
height: 128,
colorindex: colorindex,
shapeindex: shapeindex,
falling: true,
fallingspeed: 1,
});
that.blocks.push(block);
that.blocklayer.add(block);
由于屏幕上有很多块,我注意到动画有点慢
现在,我想尝试将所有固定块放入一个大图像对象中,看看这是否更快
Konva是否可以将图像的一部分复制到另一个图像?最简单的解决方案是将几个块移动到一个组中,然后缓存它:
group.cache();
演示:我可以检查一下吗?您打算将“落地”形状放入固定图像中,然后只需移动当前的“下落”形状即可?没错。由于着陆块不必再移动,它们可以在一个大图像上,所以我需要某种位图复制来完成。谢谢,我将在中查看。我不太了解Konva中的缓存功能。@lavrton这里也有一个层解决方案-所以将画布分成两层,一层用于固定块,另一层用于移动块。每次移动块移动一步刷新其层,然后当它在游戏中着陆时,将其转移到着陆层并刷新一次。着陆层必须进行一次重要的刷新/重画,但仅在形状着陆时进行一次,这意味着移动块仅刷新单个形状。