0

我正在尝试在我的游戏中使用精灵表并且我希望背景是透明的,我如何使用 swing 和/或 awt 来实现它?

4

3 回答 3

2

看看

  1. 基于 JXLayer (Java6) 的JLayer (Java7 )

  2. 半透明

  3. 通过使用设置透明度AlphaComposite

于 2012-09-12T08:50:53.847 回答
1

您最好的选择是使用已经支持背景透明度的格式创建工作表,例如 PNG 32 位。

半透明度和透明度选项只能更改图像的整个透明通道,不能根据颜色对单个位起作用。

于 2012-09-12T09:00:30.927 回答
1

扩展 mKorbel 使用 的建议AlphaComposite,您不能使用模式绘画AlphaComposite.Clear,但您可以清除 a 的背景BufferedImage。例如,

Graphics2D dstG = dstImage.createGraphics();
dstG.setComposite(AlphaComposite.Clear);
dstG.fillRect(0, 0, WIDTH, HEIGHT);

随后以不同的模式绘制将使未绘制的像素保持透明。

更多细节可以在这个答案中找到。

于 2012-09-12T16:42:13.523 回答