我正在尝试使用java制作一个2048游戏,所以测试我会在按空格时移动图像,但之前的图像会停留在那里。我想如何在不制作一百万张图像的情况下为屏幕删除图像。
public void drawTile(Graphics g)
{
BufferedImage img = Textures.getImage(new File("src//res//" +
getNumber() + " 2048.png"));
if(isDraw())
{
g.drawImage(img, getX(), getY(), null);
setDraw(false);
Handler.removeTile(new Tiles(getNumber(), getX(), getY(), false));
}
}
这是我用来制作图块并在屏幕上显示它们的代码。
答案 0 :(得分:0)
在你的方法paintComponent(Graphics g)
上你必须调用super.paintComponent(g)作为第一行导致JPanels清理屏幕或调用
g.setColor(Colors.BLACK); // or your background
g.fillRect(0, 0, getWidth(), getHeight());
第二
BufferedImage img = Textures.getImage(new File("src//res//" + getNumber() + " 2048.png"))
将此行移至对象构造函数,您可以重复使用相同的图像,而不是一直重新加载它。