javascript - 使用过滤器在画布上绘制图像
问题描述
我正在画布 + js 上制作类似塞尔达的游戏,但我不知道如何(或者即使可以做到)将过滤器应用于精灵。
我绘制了一个场景,我有多个角色(敌人、NPC 和玩家),当玩家杀死敌人时,我正在尝试制作动画。在我用爆炸动画改变敌人精灵之前,我想让它们“倾斜”。我想改变敌人精灵的整体颜色,比如“敌人精灵 -> 红色敌人精灵 -> 敌人精灵 -> 红色敌人精灵 -> 爆炸”。
我的问题,我可以对使用画布 drawImage 绘制的图像应用颜色过滤器吗?将敌人绘制到画布场景中的代码非常简单:
ctx.drawImage(img, posX, posY, img.width, img.height);
而且我也尝试过这个(如this other question中所建议):
ctx.globalAlpha = 0.62;
ctx.globalCompositeOperation = 'source-atop';
ctx.fillStyle = 'red';
ctx.fillRect(posX, posY, img.width, img.height);
但它将遮罩应用于矩形而不仅仅是精灵(在这张图片中,我将上面的代码应用于每个精灵,只是为了观察它是否有效):
有什么建议或帮助吗?谢谢!!
解决方案
推荐阅读
- javascript - 如何在 HTML 中传递参数“this”
- angular - 为什么从角度传递反应形式值在服务器端(.net 核心 API)上获取 null?
- javascript - 现有商店的 Ext JS 修改视图
- android - FirebaseUI 安装错误
- javascript - js - 在不指定元素的情况下模拟按键
- semantic-web - 如何使用 FOAF 作为另一个本体的一部分?
- django-models - 如何在列表视图中显示可用汽车列表?
- javascript - AJAX 的原生 Javascript 版本
- javascript - 如何将 PostgreSQL 命令转换为 SQL 查询生成器语法
- react-native - 如何手动在抽屉导航底部添加额外的项目(如注销按钮)?