2013-07-29 17 views
0

所以,如果我不清除我的绘画区域,它只会在那里绘画,并将其他部分留在那里,我没有像以前那样绘画。因此,我可以采取已经绘制的内容并将其移至左侧。所以我可以在右侧贴上一组新的瓷砖,而无需重新整理所有瓷砖?基于Java平铺的渲染,可能移动已经绘制的?

还是我在错误的角度得到这个?

回答

2

你可以做你正在描述的东西,但没有意义,我可以想到。在一些偏移之后渲染屏幕的一部分将不会产生真正的改进。

我假设你正在尝试这样做以获得更快的渲染。

大多数游戏做2件事更快的平铺渲染。

  1. 剪切。不要渲染屏幕外的内容。如果您渲染2.5D,不要渲染其他不透明瓷砖下面的内容。
  2. 将地图的部分渲染为更大的图像,然后渲染这些更大的图像,而不是单独的每个图块图像。

第二个比较困难,并且有局限性。例如,如果您的磁贴内容发生变化,您需要重新渲染较大的图像。这可能会让你获得最大的改善。

+0

我做了一个测试,我只是把一个4000x4000图像作为世界。作为1080p分辨率的最低要求,我已将其降至3200x3200。这个原因,如果我只是把世界转向(它是基于旋转的基于卷轴的世界),我不需要重新渲染。所以尺寸取决于分辨率需要转换多少空间并在其上添加一个宽度。在我需要更新我前往的一侧的瓷砖之前,什么方向都会让我在各个方向都发生移动。 – Andreas

+0

我刚开始想到,如果我使用这个缓冲区并将所有图块渲染到它中,那么可以获取该缓冲区的图形对象,并使用drawImage方法在其上自行绘制缓冲区,但更改位置? – Andreas

+0

@Andreas这就是我在第2点中所描述的,是的。它是一种更有效的方式来呈现瓷砖。 –