欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用双缓冲依然无法解决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);
  }