我正在研究HTML5,并从头开始构建老虎机游戏。旋转时,我想在Y上对imageData实现模糊。我已经对imageData尝试了一些algrothim,这使一切变得非常慢,我也尝试将webkitFilter应用于画布样式,它仅适用于radius。您对此有什么好的建议吗?

最佳答案

您可以预渲染运动模糊的插槽旋转轮:


从所有插槽元素垂直排列的图像开始。
使用临时画布创建垂直运动模糊(请参见下面的代码)。
要“旋转”,请通过插槽窗口为较高的车轮画布设置动画。




要有效地创建垂直运动模糊:


重复绘制垂直插槽图像。
每次绘制都增加Y偏移。
每次绘制时降低不透明度。


这是y-blur代码:

function motionBlur(wheelContext, image, blurAmount) {
    wheelContext.clearRect(0,0,wheelContext.canvas.width,wheelContext.canvas.height)
    var y=0;
    while (++y <= blurAmount) {
        wheelContext.globalAlpha=1/y;
        wheelContext.drawImage(image, 0, 0, image.width, image.height+y);
    }
}

10-07 14:11