即使我使用双缓冲技术绘制图形,我也会构建一个简单的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
中看到我的意思我正在寻找可能导致我出现这种故障的任何提示。我做错双重缓冲吗?
任何帮助表示赞赏!
由于