Java.坦克大战小游戏【0.41】

任务

代码
创建”虚拟图片”并重写 update

Image offScreenImage = null;
@Override
    public void update(Graphics g) {
        super.update(g);
        if(offScreenImage == null)   //创建"虚拟图片"
            offScreenImage = this.createImage(800,600);
        //拿到该"虚拟图片"的画笔
        Graphics offScreen = offScreenImage.getGraphics();
        //调用 paint() 方法把东西画出来
        paint(offScreen);
        //把 "虚拟图片" 整个贴到屏幕
        g.drawImage(offScreenImage, 800, 600, null);
    }

总结
1.当重写 paint() 方法刷新太块时,会出现闪烁现象,原因是内存中的 paint() 方法还没执行完毕,新一轮的命令又传递给内存了,解决方法是,把数据缓冲在内存中,当接受完全再整个输出
2.实现方法是,先设置一张“虚拟图片”接受数据,由于现在不能直接用 repaint() 调用 paint() 方法直接画,而 repaint() 调用 paint() 之前要先调用 update(),我们重写 update()

猜你喜欢

转载自blog.csdn.net/liyuanyue2017/article/details/80231173