2

好吧,我的游戏引擎运行顺畅,在所有机器上都完美运行!在继续向引擎添加功能之前,我想增强引擎的图形功能。我关注的是褪色和混合图像。我将需要一些平滑的过渡,因此在不使用任何 3rd 方库(如 OpenGL)的情况下,如何在绘制图形对象时将不透明度应用于图像?

感谢您的任何回复:D

4

1 回答 1

1

也许使用AlphaComposite可能是您正在寻找的?

Image image = new Image(...);
float alpha = 0.5;
@Override
public void paintComponent(Graphics g) {
    Graphics2D g2d = (Graphics2D)g;
    AlphaComposite composite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha);
    g2d.setComposite(composite);
    g2d.drawImage(image, 0, 0, null);
}

您可以将 alpha 设置为您想要的任何透明度级别(介于 0.0 和 1.0 之间)。在这种情况下,您可能希望使用AlphaComposite.SRC_OVER来覆盖透明图像并查看其背后,除非您要进行其他操作(如果是这样,您可以很容易地在第一时间看到所有可用的常量及其解释提供的链接)。

于 2012-07-17T04:45:15.390 回答