我可以将图像渐变分配给矩形吗

时间:2019-05-24 12:39:59

标签: java image graphics

我目前正在将Mario用作学校的图形项目。

我完成了大多数碰撞,但是我只是希望土地和砖块看起来像土地和砖块,而不只是彩色的矩形。我的图形项目中有一个用于“土地”的ImageIcon。问题在于它只有16x16像素大。为了仅通过将一块土地的每个部分做成一个16x16像素来制造足够的一块土地,这实际上是非常低效的。

我想知道我是否可以获取ImageIcon或可能的缓冲图像并将其用作矩形的“颜色”,以使块土地更容易使用。如果这不可能,那么您能否就如何解决此问题提供其他建议?

1 个答案:

答案 0 :(得分:0)

使用平铺图像的背景和纹理:

private BufferedImage image;

    URL url = getClass().getResource("/mytexture.png");
    assert url != null;
    image =  ImageIO.read(url);

@Override
public void paintComponent(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    Rectangle rect = new Rectangle(0, 0, width, height);
    Rectangle textureRect = new Rectangle(0, 0, image.getWidth(), image.getHeight());
    TexturePaint paint = new TexturePaint(image, textureRect);
    g2.setPaint(paint);
    g2.fill(rect);        
}

通常,创建您自己的JPanel。

Gimp和其他工具可通过确保行进边框的线会在相对的边框处输入来创建可平铺的图像。