如何在图块地图的顶部定义复杂的碰撞区域?


13

正如许多人所建议的那样,我正在使用Tiled地图编辑器为我的游戏创建地图,这特别棒,因为libgdx框架还提供了Tiled地图的API。

我知道我可以在地图编辑器中定义是否可折叠的图块,这样我就可以处理代码中的任何冲突。但是我目前处于需要将图块划分为可碰撞和不可碰撞区域的情况。我认为可以手动定义两个区域的边界点和界限,并以编程方式处理它。但这是很多耗时的工作。

因此,我在Google上搜索了很多东西,然后找到了这个物理身体编辑器。这似乎是使我上面提到的过程自动化的好工具。但是,该系统可以处理每个解压缩的图像,即使将图像解压缩以进行操作,我也不确定它是否可以正常工作。

我想知道是否有更好的方法来完成定义碰撞区域的整个过程。任何建议将不胜感激。

Answers:


22

和往常一样,我只会在桌面上提出一些想法。当然,可以使用几种方法来解决此问题。我将描述我设法记住的三种方法,由您决定哪种方法(如果有)对您的项目有利。

想法1:瓷砖中的可重复图案

您的系统是否需要足够灵活以支持任何可能的碰撞区域,还是可以将其分解为一组有限的图块形状,您可以使用这些形状来构建它们并将它们视为特殊情况?这是阅读该想法的一对资源:

想法2:忽略图块图

是的,完全忽略图块地图,并存储碰撞区域的其他多边形表示形式。然后将此几何图形叠加在基于图块的地图上,并处理与之发生的碰撞。如果您不需要任何物理知识,请检查以下资源:

否则,我认为您可能会使用链接到的工具。

理念3:像素完美碰撞检测

使用像素完美碰撞,并在贴砖中使用单独的蒙版或Alpha通道对可变的碰撞区域进行编码。要获取灵感,请查看以下指南:

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.