双缓冲方法的区别

时间:2014-09-13 02:31:05

标签: java applet double-buffering

我正在用Java创建我的第一个applet游戏,阅读了几个教程并找到了不同的双缓冲解决方案。我想知道它们之间有什么区别,任何利弊等等。 提前谢谢!

第一个:

public void update(Graphics g) {
    if (offImage == null) {
        offImage = createImage(this.getWidth(), this.getHeight());
        offGraphics = offImage.getGraphics();
    }
    offGraphics.setColor(getBackground());
    offGraphics.fillRect(0, 0, getWidth(), getHeight());
    offGraphics.setColor(getForeground());
    paint(offGraphics);
    g.drawImage(offImage, 0, 0, this);
}

第二个:

public void init() {
    offImage = createImage(getWidth(), getHeight());
    offGraphics = offImage.getGraphics();
}

public void paint(Graphics g) {
    g.drawImage(offImage,0,0,this);
}

public void update(Graphics g) {
    paint(g);
}

1 个答案:

答案 0 :(得分:1)

它几乎一样。不过,我会使用paint方法,因为很多人会首次检查你的代码,因为它主要用于图形开发。