渲染图块时如何处理凹凸不平的图块?


13

在此处输入图片说明

这是我不确定要处理的地图。如您所见,顶壁比底壁和侧壁要大得多(这也是我的角落的问题,这些角落是奇怪的形状(更像是L,然后是正方形),以及比我当前的瓷砖大40x40px )。

在此处输入图片说明

我还附加了我要用于瓷砖的瓷砖板,以向您展示与其余瓷砖相比,边角和顶部的外观。

我在想的是,如果我使用图块的宽度和高度而不是设置的WxH,我也许可以使用与我相同的数组绘制它们?我不知道这将如何运作,但是具有不同值的方块会成为玩家/ NPC无法踩到的方块,那么这可能不是问题,再次我甚至不确定那是否可行解。

我的代码,以防您想了解我当前的处理方式:Map.java(pastebin)(edit:im 未处理它,意味着我目前在处理地图)

tl; dr-如何获取2d外观的地图并更改为其他大小的地图?还是有更好的方法来做我想做的事情?谷歌搜索时应该寻找一种方法的名称吗?

Answers:


19

有两种标准的方法可以做到这一点。

  • 将您的非标准磁贴尺寸分成标准磁贴尺寸。因此,这些墙条变成了正方形的“堆栈”,您只知道它们一起放置在关卡编辑器中。像早期的最终幻想游戏这样的游戏就是这样工作的。
  • 让任何一块瓷砖都比您的标准瓷砖高度高。将图块与图块矩形的底部对齐,以允许任何多余的绘制都比通常的图块高度高。绘制地图时,您会从背面(屏幕上方的正方形瓷砖)开始,到底部的瓷砖(屏幕底部的瓷砖)结束绘制瓷砖。这样可以确保前景中的高块瓷砖正确覆盖在背景中的瓷砖上面。请注意,在这种方法中,您的图块仍然仅限于单个图块的宽度。

您可以使用这两种方法中的一种或两种。即使是采用“分解成一堆瓷砖”方法的游戏,也通常会允许某些对象(树等)突破瓷砖高度限制,并且仅强制执行从上到下的地图绘制顺序以确保所有图层正确地。


2
+1为第二种方法。基本上,这会将您从平铺地图移动到地图上的对象。
Kromster 2011年

完美非常感谢您,我认为这可能与第二种选择相似,但是我想确保自己以标准化的方式进行操作。= D
延迟

2

将您的奇数大小的瓷砖切片并切成小块,以适合标准尺寸。平铺地图的全部要点是,通过对所有内容进行相同大小的调整,您可以获得很多速度和实用性。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.