据说是使用什么多重缓冲技术,求高手教教我啊 游戏类似于街机三国战记那种 求高手指点啊 

解决方案 »

  1.   

    双缓冲技术很简单!
    先来说说图片的绘制过程,一副图片是一笔一笔画出来的,如果直接将这个过程搬到屏幕上的话,就会很闪,如果将屏幕显示的速度放慢50倍,就可以看到,屏幕上的图片多了一笔,过了一会儿又多了一笔。。
    这样当然不好,因为我们只要看最后的成果就行了,作画的过程就免了!因此,聪明的先行者想到了一个号办法:在内存里搞到一块空间,将正在绘制中的图片放在内存中完成,画完之后才将这张“成品”搬到屏幕上显示给玩家看,这样的话,画面就显得很流畅。。
    为进一步说明,来点代码(双缓冲的实现其实很简单,看代码就知道)
    public void paint(Graphics g2) {
    if(offScreenImage == null) {
    offScreenImage = this.createImage(MainFrame.GAME_WIDTH, MainFrame.GAME_HEIGHT);
    }
    Graphics g = offScreenImage.getGraphics();
    Color c2 = g.getColor();
    g.setColor(Color.BLACK);
    g.fillRect(0, 0, MainFrame.GAME_WIDTH, MainFrame.GAME_HEIGHT);
    g.setColor(c2);
    g.setColor(Color.WHITE);
    g.drawString("missiles count:" + missiles.size(), 10, 30);
    g.drawString("explodes count:" + explodes.size(), 10, 50);
    g.drawString("tanks    count:" + tanks.size(), 10, 70);
    g.drawString("tanks     life:" + myTank.getLife(), 10, 90);
    g.setColor(c);
    // ========================================================================
    g2.drawImage(offScreenImage, 0, 0, null);
      

  2.   

    其中 offScreenImage 是放在内存中的 Image 对象!
    最后那个 g2.drawImage(offScreenImage, 0, 0, null)才是双缓冲技术的关键所在!
    offScreen就是指“看不见的,背后的”意思
      

  3.   


    JAVA还没看到Swing SWT部分。
      

  4.   

    朋友教你个赚分的方法,每天回复别人的帖子即可拿到可用来发帖的10分!
    如果一个月每天都来逛逛的话,就可以赚取300分,基本上有什么问题就都有
    足够的分数来发帖了如果想要下载别人的资源,那就得有资源分,你可以上传一些资源,比如资料、源码什么的啊
    即使你目前没有能力上传自己的源码,也可以将在网上找到的好的资源上传上来
    只要有人下载,你就发达了
    另外,不传之秘,上传资源之后要跑到贴吧来通知一下大家,也就是起个帖子专门来打广告
    如果有什么疑问的话,也可以乘打广告之余来捎带一下,充分利用发帖分呗!^ ^last, may you lucky!