Java drawImage方法未加载所有内容

问题描述 投票:0回答:1

我目前正在开发一个基于积木世界的游戏。将子画面绘制在另一个之上以创建伪3D体验。为了避免在摄像机移动的情况下进行很多重画调用,我只渲染一次图片并将其保存到BufferedImage中,然后在正确的位置绘制它。到目前为止,效果很好...但是不会加载整个图片。每次在图片边缘都缺少块精灵。这是绘制大BufferedImage的基本迭代循环:

for(int z=0; z < zLevel; z++)
            for(int x=0; x<Main.getWorld().getMapBoundX(); x++)
                for(int y=0; y<Main.getWorld().getMapBoundY(); y++)
                    if(needsRedrawing[x][y][z]) {
                        g.drawImage(Main.getWorld().getEntity(new Vector(x, y, z)).getBlock().getType().getGraphic(), 196*64/2-32+x*32-y*32, zLevel*32+x*16+y*16-(z+1)*32, this);
                    }

之后,图像将在屏幕上显示为:

g = (Graphics2D) graphics;
g.drawImage(img, screenCoordinates[0], screenCoordinates[1], this);

image(对不起颜色... :))显示结果,并且您可以清楚地看到,其中缺少一些块。

有人知道,为什么那几个first(!)块未正确加载?我尝试渲染多少层都没有关系,总会缺少一些精灵。

谢谢,

菲尔

java awt
1个回答
0
投票

enter link description here

您可以在此站点上找到答案。

© www.soinside.com 2019 - 2024. All rights reserved.