Java Slick2D纹理问题

时间:2014-03-30 19:09:10

标签: java image textures slick2d

今天我正在研究我的游戏,我发现树顶有一个奇怪的纹理问题,它们用一个黑盒子相互重叠。它只是树顶,顶部分为9个街区,各有自己的形象。 9个图像是透明的,每个都是32x32,我尝试了一些不同的方式,没有运气。有谁知道纹理的问题是什么?这不是一代问题,而是关于纹理的OpenGL / Slick2D问题。以下是问题的屏幕截图:Screenshot

enter image description here

编辑:这是一段渲染代码。

for (int x = (int) (World.instance.camera.getX() / Block.WIDTH); x < width; x++)
    {
        for (int y = (int) (World.instance.camera.getY() / Block.HEIGHT); y < height; y++)
        {
            try
            {
                if (blocks[x][y] != Block.AIR.getId())
                {
                    g.drawImage(textureCache.get(blocks[x][y]), x * Block.WIDTH, y * Block.HEIGHT);
                }
            }
            catch(Exception ex)
            {

            }
        }
    }

1 个答案:

答案 0 :(得分:0)

查看您的代码,您似乎只在每个32x32的正方形上绘制一个图像。因此,如果树A位于树B的前面,但树A仅部分填充正方形,则树A是您的blocks数组中列出的树,因此从您的&#34;纹理缓存中检索到#34 ;;而不是树B.所以树A就是绘制的。

要解决此问题,您的blocks结构需要是三维的 - 基本上,对于每个32x32的方格,您需要某种&#34;堆栈&#34;对在该正方形中找到相应对象的所有图像的引用。然后,当您绘制该正方形时,按顺序从后面到前面绘制所有图像。