我正在用我自己的Python/Pygame引擎制作一个2D平台,已经有了一个良好的开端。我还制作了一个关卡设计师,导出关卡牌地图,游戏将其导入,但我需要关联不同的东西,比如打开特定门的开关(或者更准确地说,保持特定门打开的压力板),但我的平铺图数组目前只保存平铺图像索引号。什么是最好的方法包括相关的瓷砖(如哪个开关打开哪个门等)?在
我需要用这些数据创建一个额外的文件吗?还是每个平铺都有2个值?我试过用google搜索,但没有真正覆盖到任何地方。我肯定有人有这种经历。。。我真的不想硬编码,因为我希望游戏尽可能多功能。在
Tags:
我会改变你的文件格式,从每2D单元存储一个tile索引到存储一些更复杂的数据对象。我的第一个想法是为每个单元创建一个字典,以获得最大的灵活性,但序列化和存储它将相当大。在灵活性和存储大小之间有一个折衷。在
另一个选择是使用NamedTuples为每个单元存储固定数量的参数,同时保持简洁的序列化。NamedTuples很好,因为它们让您可以非常简洁地表示数据对象,既可以很好地序列化,也可以使用命名字段进行查询。在
你需要问自己的问题是“我需要知道地图上每个单元格的元数据是什么”和“我有多在乎简洁的文件大小来表示它们”。在
我的问题的答案是由@BowlingHawk95发布的,它使用NamedTuples作为数据对象,这使我能够为每个单元格添加多个字段。我想发布一个示例来展示结果代码,以及我如何实现它的快照,以帮助其他人寻找相同的东西。在
现在我可以添加坐标了(比如
linked_point
),我现在可以引用我所在单元格中的另一个单元格。下图显示了我的关卡设计器的快照,标题栏中有坐标,还显示了链接单元格的图像名和坐标。在非常感谢@BowlingHawk95的帮助!在
相关问题 更多 >
编程相关推荐