我有一个程序,其中基本面板只是绘制背景(树木,水等),我有一个播放器和其他物体在屏幕上移动。我不想在整个事情上调用repaint(),因为它会减慢我的速度,因为它重新整理了整个事物。当我尝试在顶部添加一个将重新绘制并处理移动对象的新面板时,我的代码中没有任何反应。这就是我在第一个
的构造函数中所拥有的public GamePanel()
{ //some code
top = TopPanel();
top.setSize(this.getSize());
add(top);
//some more code
}
然后在toppanel的课程中
public TopPanel()
{
}
public void paintComponent(Graphics g)
{
i.drawItem(//);
player.draw(//fields);
}
无论我做什么,当我运行它时,我都无法在面板上显示任何内容。
答案 0 :(得分:2)
在绘制复杂但静态的“背景”并将其他内容绘制在顶部时,我的一般方法是将背景绘制为BufferedImage
,并在绘制动态部分之前简单地重绘图像。