Java分层图像

时间:2013-11-28 13:39:46

标签: java image background

我正在尝试设置一个背景图片,然后将事情放在该背景图像之上,但我遇到的问题是背景层叠在其他所有事物上。我希望有人能告诉我如何正确分层图像。

到目前为止我用于绘制背景的代码就是这个,

@Override
public void paint(Graphics g) {
    super.paint(g);
    Graphics2D g2d = (Graphics2D) g;
    DoAnimation();
    if (bInGame) {
        PlayGame(g2d);
    } else {
        ShowIntroScreen(g2d);
    }
    g.drawImage(ii, 5, 5, this);
    //g.drawImage(Background, 0, 0, null);
    Toolkit.getDefaultToolkit().sync();
    g.dispose();
}

活动时具有背景的g.drawImage将是唯一出现的内容,但是当我评论它时,其他所有内容都会再次出现。我已经尝试将我的背景放到一个单独的文件中,希望它只是把它放在其他一切

1 个答案:

答案 0 :(得分:2)

您需要先绘制背景图像。在您的代码段中,您最后绘制它。

@Override
public void paint(Graphics g) {
    super.paint(g);
    Graphics2D g2d = (Graphics2D) g;

    // assuming you want it behind everything else
    // drawn to g2d after this point
    g.drawImage(Background, 0, 0, null);

    DoAnimation();
    if (bInGame) {
        PlayGame(g2d);
    } else {
        ShowIntroScreen(g2d);
    }
    g.drawImage(ii, 5, 5, this);
    Toolkit.getDefaultToolkit().sync();
    g.dispose();
}

考虑绘制图形上下文作为堆积纸张。每个绘制调用都会覆盖之前完成的操作。当您绘制新图像时,它会覆盖之前的图像。