使用Javascript/Canvas/Jquery使部分背景透明

使用Javascript/Canvas/Jquery使部分背景透明,javascript,jquery,canvas,Javascript,Jquery,Canvas,所以,我想做一个涉及光的游戏。它将允许你移动手电筒和灯泡等,以显示你所在的房间 我想通过(也许)在一个div上有一个房间的背景图像,然后在其中有一个黑色背景的div,来模拟黑暗。然后,当玩家移动光源时,移除黑色背景的部分(或使其透明),这样你就可以通过它们看到背景,使它们看起来像被点亮了一样 我尝试过几种方法——到目前为止,唯一有效的方法是使用大量1x黑色div作为“像素”,并通过编程使其透明,但速度非常(非常)慢 我相当肯定canvas有一个解决方案,这是朝着正确方向迈出的一步,但我想显示一个

所以,我想做一个涉及光的游戏。它将允许你移动手电筒和灯泡等,以显示你所在的房间

我想通过(也许)在一个div上有一个房间的背景图像,然后在其中有一个黑色背景的div,来模拟黑暗。然后,当玩家移动光源时,移除黑色背景的部分(或使其透明),这样你就可以通过它们看到背景,使它们看起来像被点亮了一样

我尝试过几种方法——到目前为止,唯一有效的方法是使用大量1x黑色div作为“像素”,并通过编程使其透明,但速度非常(非常)慢

我相当肯定canvas有一个解决方案,这是朝着正确方向迈出的一步,但我想显示一个背景图像,而不仅仅是“灯光”


任何建议或想法都将受到欢迎。我会把你的用户名写进信用卡;-)

您可以通过与
globalCompositeOperation
一起使用,而不是
source over

当使用透明(rgba)颜色绘制时,值
destination out
甚至
xor
似乎就是您所需要的。我构建了一个演示:在一个红色背景的画布上,在一个黑色矩形上绘制黄色(alpha:0.5)(和)


使用阿尔法为
1的
destination out
,使冲程/填充区域完全透明。使用较低的alpha,您将能够使已经绘制的区域变暗,并可能具有某种颜色的阴影。

您已经使用rgba在画布上绘制了,不是吗?是的,但我需要擦除黑色位以显示下方的图像。完美。完美的谢谢如果我完成了游戏,你在积分中是对的=]…不如给我一个链接玩它:-)很高兴能帮上忙