更改 Phaser.Sprite 某些颜色的不透明度

Posted

技术标签:

【中文标题】更改 Phaser.Sprite 某些颜色的不透明度【英文标题】:Change opacity of certain color of Phaser.Sprite 【发布时间】:2016-06-20 10:57:00 【问题描述】:

我有一个精灵表,其中黑色像素代表透明度。因此,当我从这张表加载精灵时,我不希望显示这些像素。

因此我的问题如下:有没有一种简单的方法可以告诉 Phaser 精灵的某种颜色的不透明度应该变成透明的?

【问题讨论】:

这可能会有所帮助:phaser.io/examples/v2/sprites/mask 您可以使用 Elliot 指出的蒙版,或者只是将您的图像转换为使用实际透明度,因为 Phaser 开箱即用地支持它。 如果您仍想随时更改 spritesheet,可以尝试 BitmapData.processPixelRGB() - phaser.io/docs/2.4.6/Phaser.BitmapData.html#processPixelRGB 。只需将 spritesheet 加载到 BitmapData 对象中,调用此方法并返回 (0, 0, 0, 0) (或者实际上是任何具有 alpha 0 的颜色)对于每个以 (0, 0, 0) 作为颜色的像素。跨度> 很高兴找到@KamenMinkov。我想知道这会如何影响性能,但无论哪种方式,用一些代码将其放入答案中,我会赞成。 为什么不在 sprite .PNG 文件中只绘制透明像素而不是黑色像素?仅当您想在游戏过程中以多​​种不同方式或组合更改精灵时,才应使用 BitmapData。 【参考方案1】:

如果您只需要这样做一次,那么您可以借助lunapic.com 等在线工具来完成。

上传你的精灵,选择一种你想要透明的颜色就可以了。

【讨论】:

以上是关于更改 Phaser.Sprite 某些颜色的不透明度的主要内容,如果未能解决你的问题,请参考以下文章

使用 moveRow(at:,to:) 时如何更改 UITableViewCell 的不透明度和颜色

更改 react-native-maps 中活动标记的不透明度

如何使用 Matplotlib 设置图形背景颜色的不透明度

如何使输入字段的不透明度不影响其中的文本颜色?

更改ImageView中黑色像素的不透明度

WPF 字体中不可预测的不透明度行为