使用双缓冲依然无法解决frame闪屏问题
程序员文章站
2022-07-05 12:31:14
...
其实这个问题很简单,对于刚入门的同学来说,一不留心就会遇到的问题,而且很难发现问题所在。网上很多文章都是在重复下面这个代码块,对于这个代码段没啥好说的,关键在于一个细节:在你重写update的时候是否把super.update()去掉了,我们重写update方法就是为了全面接管,所以去掉super.update(),问题解决!!
private Image offScreenImage = null;
public void update(Graphics g) {
if(offScreenImage == null) {
//这是游戏窗口的宽度和高度
offScreenImage = this.createImage(Constant.GAME_WIDTH, Constant.GAME_HEIGHT);
}
Graphics gOff = offScreenImage.getGraphics();
paint(gOff);
g.drawImage(offScreenImage, 0, 0, null);
}