【问题标题】:Java tiled based rendering, possible to move the already painted?Java基于平铺的渲染,可以移动已经绘制的?
【发布时间】:2026-02-16 00:55:02
【问题描述】:

因此,如果我不清理我的绘画区域,它只会在我绘画的地方绘画,而将我没有像以前那样绘画的其他部分留在那里。所以我可以把已经画的东西移到左边吗?所以我可以在右侧放置一组新的瓷砖而无需重新绘制所有瓷砖?

还是我的角度不对?

【问题讨论】:

    标签: java paint move tiles


    【解决方案1】:

    你可以做你所描述的,但我想不出这有什么意义。在某些偏移后渲染屏幕的一部分不会产生真正的改进。

    我假设您正在尝试这样做以加快渲染速度。

    大多数游戏会做两件事来加快平铺渲染。

    1. 剪辑。不要渲染屏幕外的内容。如果要渲染 2.5D,请勿渲染其他不透明图块下方的内容。
    2. 将地图的某些部分渲染为更大的图像,然后渲染这些更大的图像,而不是单独渲染每个平铺图像。

    第二个更难,也有局限性。例如,如果您的磁贴内容发生变化,您需要重新渲染较大的图像。这可能会给你带来最大的进步。

    【讨论】:

    • 我做了一个测试,我只是把一个 4000x4000 的图像作为世界。现在我把它降到 3200x3200 作为 1080p 分辨率的最小值。这导致如果我只是转动世界(它是基于滚动的带有旋转的世界),我不需要重新渲染。因此,大小取决于分辨率需要转动多少空间并在其上添加平铺宽度。在我需要更新我要去的一侧的瓷砖之前,是什么让我在各个方向上移动瓷砖。
    • 我刚刚想到,如果我使用这个缓冲区并渲染所有图块,然后可以获取该缓冲区的图形对象并使用 drawImage 方法在其上绘制缓冲区,但更改位置?
    • @Andreas 这就是我在第 2 点中所描述的,是的。它是渲染图块的更有效方式。
    • 好吧,自从我写了它就没有得到那个。为了清楚起见,我可以自己绘制缓冲区吗?
    • 不确定将缓冲区绘制到自身是什么意思...图像可以渲染到其他图像。图像可以渲染到 gui,而 gui 可以渲染到图像,所以......你的答案是肯定的。您几乎可以将任何缓冲区渲染到任何其他缓冲区。
    最近更新 更多