gpt4 book ai didi

java - 如何在 Java 中设置背景图像?

转载 作者:IT老高 更新时间:2023-10-28 20:41:00 24 4
gpt4 key购买 nike

我正在使用 Java 开发一个简单的平台游戏,并使用 BlueJ 作为 IDE。现在,我在游戏中使用多边形和简单形状绘制了玩家/敌人 Sprite 、平台和其他项目。最终我希望用实际图像替换它们。

现在我想知道将图像(URL 或来自本地源)设置为我的游戏窗口/ Canvas 的“背景”的最简单解决方案是什么?

如果它不是很长或不太复杂,我将不胜感激,因为我的编程技能不是很好,我想让我的程序尽可能简单。请提供带有注释的示例代码来详细说明它们的功能,如果它在它自己的类中,如何调用它在其他类中使用的相关方法。

非常感谢。

最佳答案

根据应用程序或小程序使用的是AWT,答案会略有不同。或 Swing .

(基本上JAppletJFrameJ开头的类就是Swing,AppletFrame 是 AWT。)

在任何一种情况下,基本步骤都是:

  1. 将图像绘制或加载到 Image 对象中。
  2. 在你要绘制背景的组件的painting事件中绘制背景图片。

第 1 步。 可以使用 Toolkit 加载图像。类或由ImageIO类。

Toolkit.createImage方法可用于从 String 中指定的位置加载 Image:

Image img = Toolkit.getDefaultToolkit().createImage("background.jpg");

同样可以使用ImageIO:

Image img = ImageIO.read(new File("background.jpg");

第 2 步。 需要覆盖应该获取背景的 Component 的绘制方法并将 Image 绘制到组件上.

对于 AWT,覆盖的方法是 paint方法,并使用 drawImage Graphics 的方法传递给 paint 方法的对象:

public void paint(Graphics g)
{
// Draw the previously loaded image to Component.
g.drawImage(img, 0, 0, null);

// Draw sprites, and other things.
// ....
}

对于 Swing,覆盖的方法是 paintComponent JComponent 的方法,然后像在 AWT 中所做的那样绘制 Image

public void paintComponent(Graphics g)
{
    // Draw the previously loaded image to Component.
    g.drawImage(img, 0, 0, null);

    // Draw sprites, and other things.
    // ....
}

简单组件示例

这是一个 Panel,它在实例化时加载一个图像文件,并在其自身上绘制该图像:

class BackgroundPanel extends Panel
{
// The Image to store the background image in.
Image img;
public BackgroundPanel()
{
// Loads the background image and stores in img object.
img = Toolkit.getDefaultToolkit().createImage("background.jpg");
}

public void paint(Graphics g)
{
// Draws the img to the BackgroundPanel.
g.drawImage(img, 0, 0, null);
}
}

有关绘画的更多信息:

关于java - 如何在 Java 中设置背景图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/523767/

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