我正在使用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混合绘制一个由我的代码控制的透明度的纯白色矩形,但如果这是最好的方式对我来说并不明显实现看似非常普遍的效果。
答案 0 :(得分:2)
如果您只想将图像从完全透明淡入到完全不透明,请执行以下操作:
ImageLayer faceLayer;
void init() {
Image faceImage = assetManager().getImage("images/face.png");
faceLayer = graphics().createImageLayer(faceImage);
graphics().rootLayer().add(faceLayer);
}
void update(float delta) {
float alpha = calcAlpha(delta);
faceLayer.setAlpha(alpha);
}
其中alpha范围从0(完全透明)到1(完全不透明)。