我目前正在游戏中实现一个可变形的2D地形效果,做得还不错,但随着我开始添加更多的层次到效果中,我可以想象它会变得非常占用性能。
现在我正在寻找一种可能的方法,可以保存路径、剪切蒙版或类似的东西,而不是要在每一帧中都存储绘制路径中的每个点。当我添加更多的层次时,我将不得不越来越多地迭代路径,这可能包含成千上万个点。
这里有一些非常简单的代码,以展示我目前在做什么。
for (var i = 0; i < aMousePoints.length; i++)
{
cRenderContext.save();
cRenderContext.beginPath();
var cMousePoint = aMousePoints[i];
cRenderContext.arc(cMousePoint.x, cMousePoint.y, 30, 0, 2 * Math.PI, false);
cRenderContext.clip();
cRenderContext.drawImage(cImg, 0, 0);
cRenderContext.closePath();
cRenderContext.restore();
}
基本上,我需要一种有效的方法来在每一帧上反复绘制我的图像裁剪掩模。