如何在屏幕上移动某些东西而不留下其他图片

时间:2017-10-20 12:02:19

标签: java

我正在尝试使用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));
    }
}

这是我用来制作图块并在屏幕上显示它们的代码。

1 个答案:

答案 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"))

将此行移至对象构造函数,您可以重复使用相同的图像,而不是一直重新加载它。