Программно исчезает изображение в PlayN
Я работаю над игрой с использованием PlayN, и есть немного, где я хотел бы сделать изображение (которое в настоящее время в формате PNG, уже с 8-битной альфа-версией), и я хотел бы умножить изображение на дополнительный альфа-фактор на основе значения из моего кода.
В частности, у меня есть изображение лица, которое в настоящее время живет в 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 ответ
Если вы просто хотите сделать изображение более прозрачным или полностью непрозрачным, просто сделайте следующее:
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);
}
Где альфа колеблется от 0 (полностью прозрачный) до 1 (полностью непрозрачный).