我想知道哪种方式最好为类似于Soldat的射手渲染 2D 地图(这些将是静态地图) 。我考虑过的多个选项是基于图块的地图(存储在 txt 文件中),或者只是为我计划使用的不同地形创建不同的类,并创建一个数据结构来读取/存储它们在文件中。(我还希望能够包括诸如在墙上跳跃/奔跑、滑下墙壁/斜坡等)
我觉得肯定有比这两种方法更好的方法,但一直找不到确切的信息:/
谢谢 :)
我想知道哪种方式最好为类似于Soldat的射手渲染 2D 地图(这些将是静态地图) 。我考虑过的多个选项是基于图块的地图(存储在 txt 文件中),或者只是为我计划使用的不同地形创建不同的类,并创建一个数据结构来读取/存储它们在文件中。(我还希望能够包括诸如在墙上跳跃/奔跑、滑下墙壁/斜坡等)
我觉得肯定有比这两种方法更好的方法,但一直找不到确切的信息:/
谢谢 :)
Soldat 使用基于多边形的格式来渲染和表示它的关卡。编辑器允许用户在获得纹理和属性(例如碰撞 = 死亡)时绘制点和它们之间的连接以制作墙壁和结构。然后覆盖在上面的项目和图像。
然后,soldat 渲染引擎将使用这些结构来执行碰撞检测并构建世界的多边形(绘制的三角形)表示。
我打算使用“只使用瓦片地图”,但后来我查看了 Soldat,它有点复杂。
我不知道他们在使用什么,但我怀疑他们正在使用多边形并且可能也与多边形发生碰撞。这些关卡很可能是使用您在 3D 游戏中看到的相同类型的图元生成的,但都在一个平面上。例如纹理映射三角形和碰撞表面的边缘而不是表面本身。
以我的经验,“地形”本身通常是一个对象,碰撞和视觉表示是该对象内部的数据(通常聚合到该对象中)。不同的地形不一定需要是不同类型的东西,事实上,在我制作的所有游戏中,整个世界通常是“地形”或“世界”或其他类型的单个对象,它管理进出视野的各种可见部分的行为。
这感觉不是一个很好的答案,但我想我会尝试给你一些东西。
我建议阅读《构建 XNA 2.0 游戏:独立游戏开发实用指南》一书。它将引导您开发一款名为 Zombie Smashers 的 2D 横向游戏(基于作者的获奖作品The Dishwasher: Dead Samurai)。
第 4 章:地图编辑器正是您所寻找的。
即使您不打算在 XNA 中开发,它也会对您有所帮助。
做你想做的平台游戏的例子是Braid和Aquaria。使用Humble Indie Bundle,您只需 2 便士即可获得 Aquaria 。
这是Aquaria 的编辑器。我找不到一个像样的辫子编辑器视频。
我发现了另一个关于 IndieLib 的视频,以及他们创建的与 Aquaria 类似的关卡编辑器(免责声明:我自己没有尝试过)。
除此之外,谷歌搜索“辫子和水族馆平台引擎”应该会给你更多的结果。