当我使用双缓冲绘制时,图形闪烁

时间:2015-03-21 12:07:37

标签: java drawing java-2d doublebuffered

即使我使用双缓冲技术绘制图形,我也会构建一个简单的2D游戏并出现一些闪烁问题。

我刚刚开始并且到目前为止有一个非常简单的游戏循环。但我觉得它应该可行吗?没有任何闪烁.. 以下是我的表现方式:

@Override
public void run() {
    while (running) {
        currentState.update();
        prepareGameImage();
        currentState.render(gameImage.getGraphics());
        repaint();
        try {
            Thread.sleep(14);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    System.exit(0);
}

@Override
protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    if (gameImage == null) {
        return;
    }
    g.drawImage(gameImage, 0, 0, null);
}

private void prepareGameImage() {
    if (gameImage == null) {
        gameImage = createImage(gameWidth, gameHeight);
    }

    Graphics g = gameImage.getGraphics();
    g.clearRect(0, 0, gameWidth, gameHeight);
}

你可以在this video

中看到我的意思

我正在寻找可能导致我出现这种故障的任何提示。我做错双重缓冲吗?

任何帮助表示赞赏!

由于

0 个答案:

没有答案