创建游戏关卡的最有效方式? (LibGDX)

Most Efficient Way to Create a Game Level? (LibGDX)

我正在制作类似平台游戏的游戏(不完全是平台游戏;它是垂直滚动),但关卡加载应该相似。到目前为止,我遇到了两种创建游戏关卡的方法。

  1. 使用瓷砖地图。基本上,您使用一些图块在 Tiled Map Editor 中创建您的关卡,例如 Tiled,然后您将其用作您的关卡。

  2. 使用 ArrayList 并存储所有游戏对象(砖块、长钉等...)。所有对象及其位置都将存储在文本文件中,然后在运行时使用 StringTokenizer 和循环访问并放入数组中。

我觉得使用Tiled Map更简单方便。使用 Tiled Maps 有什么缺点 and/or 使用 ArrayList 方法的优点吗?或者还有其他更好的方法吗?

答案就在你的问题中:Tiled Map更简单方便,文本文件更难更不方便。

为什么不使用像 XML 或 JSON 这样非常适合的标准格式,而不是使用自定义解析的文本文件。这些格式的 Goos 解析器已经存在。

如果您的问题是关于性能的,不用担心,tiled 是 XML 格式,如果您在未来试验性能问题,您可以预处理您的 tiled 地图以生成适合您的游戏的优化格式.

Tile Maps 学了以后可能很容易上手,但学起来未必容易。可以肯定的是,这里是 wiki:

https://github.com/libgdx/libgdx/wiki/Tile-maps

如果您认为您的游戏足够简单,用 ArrayListStringTokenizer 就可以完成,我说为什么不呢。

但是,假设您的游戏日后变得更加复杂。您可能希望使用 Tile Maps 来帮助您管理这种复杂性。