gpt4 book ai didi

Java:如何用导入的 PNG 文件替换 "oval"或 "rectangle"图形?

转载 作者:行者123 更新时间:2023-11-29 09:10:25 25 4
gpt4 key购买 nike

我导入了:

 import javax.swing.ImageIcon;

我使用这段代码导入了 PNG 文件。 (我知道我可以很容易地创建一个黑色方 block ,但我想要的是将任何图像导入我的游戏)。

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);

最佳答案

当您构建用于分发的代码时,您可能希望将图像与类文件一起放入 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;
}
});
}

关于Java:如何用导入的 PNG 文件替换 "oval"或 "rectangle"图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12763483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com