我正在尝试设置一个背景图片,然后将事情放在该背景图像之上,但我遇到的问题是背景层叠在其他所有事物上。我希望有人能告诉我如何正确分层图像。
到目前为止我用于绘制背景的代码就是这个,
@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将是唯一出现的内容,但是当我评论它时,其他所有内容都会再次出现。我已经尝试将我的背景放到一个单独的文件中,希望它只是把它放在其他一切
答案 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();
}
考虑绘制图形上下文作为堆积纸张。每个绘制调用都会覆盖之前完成的操作。当您绘制新图像时,它会覆盖之前的图像。