在画布上绘制图像时的黑色图像

时间:2015-11-23 19:40:41

标签: java canvas graphics graphics2d

我正在开发一款游戏,我使用Canvas来显示我的图形。我没有(也没有计划)使用任何Swing组件...

在我的渲染方法中:

我正在使用从画布中获取的BufferStrategy。

BufferStrategy bs = this.getBufferStrategy();
    if(bs == null){
        createBufferStrategy(3);
        return;
    }
    Graphics g = bs.getDrawGraphics();

稍后在同一方法中,我最终绘制图像(实体,树木,地图等),处理g,并显示引用'bs'。

...drawings onto canvas(entities, trees, map, etc.)
    //END RENDER
    g.dispose();
    bs.show();

在我// END RENDER和完成绘画之间,我会问是否暂停游戏。如果是这样的话,我将根据g创建一个BufferedImage。我渲染了BufferedImage然后渲染我的库存屏幕:

BufferedImage img = new BufferedImage(this.width, this.height, BufferedImage.TYPE_3BYTE_BGR);
        Graphics gx = img.getGraphics();
        game.paint(gx);

g.drawImage(img, 0, 0, Color.CYAN, this);       
interfaceLayer.render(g);

我在我的参考img中得到了一个黑色的BufferedImage。 我使用BufferStrategy做错了吗?我不应该使用两个不同的Graphics对象吗?

这是我暂停游戏以获得想法之前和之后的图片。 而不是:

g.drawImage(img, 0, 0, Color.CYAN, this);

我把它改为:

g.drawImage(img, 20, 20, Color.CYAN, this);

只需要一些任意的x,y,这样你就可以了解他们分层的情况。

enter image description here

enter image description here

别介意灰盒子。这是一个fillRect(),我最终将作为库存屏幕中图形的一部分进行扩展。

为什么是黑色图像?

0 个答案:

没有答案