我导入了:
import javax.swing.ImageIcon;
我使用此代码导入PNG文件。 (我知道我可以轻松创建一个黑色方块,但它是将我想要的任何图像导入到我的游戏中。)
Image player1 = Toolkit.getDefaultToolkit().createImage("Users/Documents/JavaGameImages/Tag/BlackSquare.png");
我试图稍后调用此图像,但图像没有出现在窗口中。 (假设myX = 100且myY = 100)
public void paint(Graphics g) {
g.setColor(BackgroundColor);
g.fillRect(WindowWidth, WindowHeight, 1000, 1000);
///////////////////////下面的代码是我遇到麻烦的地方:
g.drawImage(player1, myX, myY, null);
答案 0 :(得分:0)
当您构建要分发的代码时,您可能希望将图像放入带有类文件的jar文件中。我所做的是将它放在与访问它的类相同的目录中,然后使用getClass()。getResource(fileName)访问它,就像在这个带纹理的背景边框的代码片段中一样:
final Toolkit toolKit = Toolkit.getDefaultToolkit();
URL imgURL = getClass().getResource(textureFileName);
if (imgURL != null)
{
Image tmpImage = toolKit.createImage(imgURL);
toolKit.prepareImage(tmpImage, -1, -1,
new ImageObserver() {
public boolean imageUpdate(Image updatedImage, int infoFlags, int x,
int y, int width, int height)
{
if ((infoFlags & ImageObserver.ALLBITS) == ImageObserver.ALLBITS)
{
int w = updatedImage.getWidth(null);
int h = updatedImage.getHeight(null);
BufferedImage backgroundImage = new BufferedImage(w, h,
BufferedImage.TYPE_INT_ARGB_PRE);
Graphics2D g = backgroundImage.createGraphics();
g.drawImage(updatedImage, 0, 0, null);
g.dispose();
Rectangle rect = new Rectangle(0, 0, w, h);
texture = new TexturePaint(backgroundImage, rect);
return false;
}
return true;
}
});
}