解决了问题:无论我多少次删除像素并在照片编辑器中将其设置为透明,我都切换到绘制.NET并且它有效! :)
这是我的spritesheet,它是透明的。我已经用我的SpriteSheet类加载了它:
package com.pokemoniridium.Framework;
import java.awt.image.BufferedImage;
public class SpriteSheet {
public BufferedImage spriteSheet;
public SpriteSheet(BufferedImage spriteSheet){
this.spriteSheet = spriteSheet;
}
public BufferedImage grabSprite(int x, int y, int width, int height){
BufferedImage sprite = spriteSheet.getSubimage(x, y, width, height);
return sprite;
}
}
将其加载到:
SpriteSheet spriteSheet = SpriteSheet(loader.loadImage("/assets/Gold_Walking.png"));
然后我将它加载到一个数组中,如下所示:
sprites[0] = this.spriteSheet.grabSprite(0, 0, 50, 50);
然后我渲染它:
g.drawImage(sprites[0], x, y, null);
顺便说一句,loader变量是我的BufferedImageLoader类的一个实例: http://pastebin.com/SB0P8aav
问题仍然存在,很奇怪。任何想法的家伙?
当我使用该方法抓取图像时,它会返回图像但没有透明度。我使用过PNG和GIF吗?
无论如何,我可以抓取图像并获得图像的透明度吗?