以编程方式淡入PlayN中的图像

时间:2012-01-17 05:56:37

标签: playn

我正在使用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混合绘制一个由我的代码控制的透明度的纯白色矩形,但如果这是最好的方式对我来说并不明显实现看似非常普遍的效果。

1 个答案:

答案 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(完全不透明)。