JavaScript:是否可以从矩形中切出一个形状以在其中制作一个透明的孔?

标签 javascript canvas 2d

我现在正在尝试用 Javascript 制作一个 2d 自上而下的游戏。我目前有一个日/夜系统,其中黑色矩形逐渐变得更加不透明(随着时间的推移),然后最终完全不透明,模拟玩家看不到的夜晚高峰。

我想实现一个人造光系统,玩家可以使用手电筒照亮他们前面的一小块区域。然而,我的问题是我似乎无法找到一种方法从我的不透明矩形中“切出”形状。通过剪出一个形状,玩家看起来就像有一个火把。

请找到我在下面制作的示例模型图像来展示我的意思。 /image/OnBlJ.png 显然,形状不应该画得这么粗略:)

感谢您的宝贵时间, 凸轮

编辑:用于绘制矩形的代码如下:

context.fillStyle = "#000033";
    context.globalAlpha = checkLight(gameData.worldData.time);
    context.fillRect(0, 0, 512, 480);
    //This is where you have to add the cut out triangles for light!
    context.stroke();

最佳答案

当“灯”打开时,不要在场景上绘制一个矩形以使其变暗,而是绘制一个图像,其中“亮”区域完全透明,而其余“暗”区域更加不透明。

关于JavaScript:是否可以从矩形中切出一个形状以在其中制作一个透明的孔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32972749/

相关文章:

c - 在嵌入式设备上渲染

javascript - 授予 Chrome 扩展程序访问 iframe 内容的权限

javascript - 将 Canvas 放在 CSS 文本框的顶部

Javascript OOM,继承问题

javascript - HTML5 Canvas ClipRect 无法正常工作

javascript - 设置 Canvas 大小时不显示图像

c - 二维数组中缺少最后一个元素

javascript - 使用 tab 键选择一个 div 并在 enter 键上添加事件

html - 在 Canvas 上制作可拖动、可调整大小的图像

javascript - 如何创建一个使用 JavaScript Canvas 旋转的通用函数?