【发布时间】:2013-04-10 13:21:29
【问题描述】:
谁能指出正确的方向,在 XNA for Windows Phone 中制作 2D 关卡编辑器的最佳方法是什么?
我有一个游戏快完成了,但我希望在未来创建具有不同级别和主题等的多个版本。
最好的方法是什么?
【问题讨论】:
标签: xna windows-phone
谁能指出正确的方向,在 XNA for Windows Phone 中制作 2D 关卡编辑器的最佳方法是什么?
我有一个游戏快完成了,但我希望在未来创建具有不同级别和主题等的多个版本。
最好的方法是什么?
【问题讨论】:
标签: xna windows-phone
我建议不要制作一个,而是使用Tiled 之类的东西。它将以相对简单的 XML 格式保存阶段,甚至还有一个 C# library 来读取 Tiled 文件。
还有很多其他优秀的编辑器。我建议朝这个方向发展,因为坦率地说,您将花费太多时间自己制作。
要进一步扩展 Tiled,您可以使用 the aforementioned library 解析 TMX 文件,该文件是通过使用 Tiled 并保存您的地图制成的。阅读github页面上的Usage,看起来使用起来很简单。
当你解析一个 Tiled 元素时,比如一个特定的 tile 索引或一个 Tiled “对象”,你必须将它映射到游戏中有用的东西(图形精灵纹理、玩家可以与之交互的敌人或对象等) .)。对于瓦片,您可以通过enums 进行管理(为每种瓦片类型创建一个别名并为其分配瓦片表中的确切瓦片编号),甚至只是一个遵循相同映射的数组。对于对象,使用 Tiled 的对象属性来分配您定义的有意义的值,然后将其与 TMX 一起保存,您可以使用该库解析它们。
例如,您可以在 Tiled 对象中定义一个名为“enemytype”的属性,并为其赋予值“lizard”。解析时的代码可以查找该属性和值,并在解析时创建一个Lizard对象。
【讨论】:
如果您的游戏即将完成,那么我会假设其中某处有代码可以加载和显示您拥有的地图。提取该代码,您就成功了一半。然后你只需要添加一些方法来添加它正在读取的地图,并将其保存回相同的格式。
如果您的地图当前是在内存中创建的,那么您需要找出一种可以将它们保存为的文件格式(XML 或 JSON 可以使用,但是用于切片类型的大整数 CSV 也可以使用并且更简单)。然后,您将需要代码从该格式中读取并填充您当前的地图模型。
【讨论】: