我正在使用 PlayN 开发游戏,我想在某些地方拍摄图像(目前是 PNG 格式,已经具有 8 位 alpha),我想将图像乘以一个额外的 alpha 因子,基于我的代码中的值。
具体来说,我有一张当前存在于 ImageLayer 中的人脸图片,我想要的效果是这样的:
void init() {
faceImage = assetManager().getImage("images/face.png");
graphics().rootLayer().add(faceImage);
}
void update(float deltaMilliseconds) {
// start at fully transparent, fade to fully opaque
float transparency = calcTransparency(deltaMilliseconds);
faceImage.setTransparency(transparency);
}
我希望有一些方法可以使用 GroupLayers 和混合模式做一些棘手的事情,也许将图像与画有纯白色矩形的 CanvasLayer 混合,透明度由我的代码控制,但如果这是实现目标的最佳方法,对我来说并不明显似乎是一个很常见的效果。