Java Can';t绘制缓冲图像

Java Can';t绘制缓冲图像,java,image,bufferedimage,slick2d,Java,Image,Bufferedimage,Slick2d,我正在使用以下代码尝试绘制图像: g.drawImage(Tile.background, (int)spritePositionX, (int)spritePositionY, null); 以下是tile.background的my tile类: public class Tile { public static int size = 40; public static BufferedImage terrain, background, items, characters; public

我正在使用以下代码尝试绘制图像:

g.drawImage(Tile.background, (int)spritePositionX, (int)spritePositionY, null);
以下是tile.background的my tile类:

public class Tile {
public static int size = 40;
public static BufferedImage terrain, background, items, characters;
public Tile(){
    try{
        Tile.background = ImageIO.read(new File("res/bg.png"));
        Tile.terrain = ImageIO.read(new File("res/terrain.png"));
        Tile.items = ImageIO.read(new File("res/items.png"));
        Tile.characters = ImageIO.read(new File("characters/bg.png"));
    }catch(Exception e){
        System.out.println("Error loading images.");
    }
}
}

它给了我这个错误: 类型图形中的方法drawImage(Image、float、float、Color)不适用于参数(buffereImage、int、int、null) 提前谢谢

以下是我在g.drawImage所在的类中的导入:

import javax.swing.ImageIcon;
import org.lwjgl.input.Mouse;
import org.newdawn.slick.*;
import org.newdawn.slick.state.*;
import java.awt.Rectangle;

我怀疑您正在尝试使用以下方法:

boolean Graphics.drawImage(Image img, int x, int y, ImageObserver observer)
最后一个参数必须是实现ImageObserver接口的对象,而“null”则不是

解决此问题的一个简单方法是修改Tile类以实现ImageObserver(通过添加具有以下签名的方法):

该方法可以简单地返回true


然后通过将null参数更改为“this”(假设调用在Tile类中)来修改drawImage调用。如果它不在Tile类中,则将null参数更改为Tile对象。

我怀疑您试图使用以下方法:

boolean Graphics.drawImage(Image img, int x, int y, ImageObserver observer)
最后一个参数必须是实现ImageObserver接口的对象,而“null”则不是

解决此问题的一个简单方法是修改Tile类以实现ImageObserver(通过添加具有以下签名的方法):

该方法可以简单地返回true


然后通过将null参数更改为“this”(假设调用在Tile类中)来修改drawImage调用。如果它不在Tile类中,则将null参数更改为Tile对象。

您试图使用图形对象的Slicks实现,该图形对象没有包含所提供参数的方法。不管怎样,斯里克已经死了。要么切换到LIBGDX,要么只使用Java的2d API。

您正在尝试使用图形对象的Slicks实现,它没有包含所提供参数的方法。不管怎样,斯里克已经死了。要么切换到LIBGDX,要么只使用Java的2dapi