在Python中保存/加载游戏级别的方法

nch*_*pmn 2 python yaml pygame pickle

我正在使用Python和PyGame编写游戏.(这是在作业中进行的,因此建议另一个具有内置级别解析的游戏开发库是没有用的)

我现在处于游戏物理等完成的阶段,但我还没有找到一种方法来保存和加载游戏中的关卡.以下是我到目前为止所考虑的内容:

1.方法头脑风暴

  • 已经建议YAML(因此,PyYAML)用于处理级别输入/输出.
    • 它以纯文本形式存储,但以结构化的mannar存储.
    • 易于编辑等 - YAML的主要功能之一是易于人性化阅读.
  • 使用泡菜
    • 我过去使用过的 - 将列表保存为具有拆分项的单个项目以区分它们.
    • 同样,保存为纯文本,但使用拆分项(例如,{> <}与学习者驱动程序日志一样,使其更难理解.

2.数据表示

  • 每个级别都需要解析后续数据.数据类型旁边是粗体.
    • 球和圆的起始位置和特征[两个列表]
    • 圆圈的限制[整数]
    • 允许的颜色[定义列表颜色:真/颜色:假]
    • 强迫完成区别标准[整数]
    • 任何必须出现在级别[字符串列表]中的故事情节或教程文本
    • 级别名称和编号[字符串列表]

所有我正在寻找的是实现这一目标的最佳方法的建议.

TL; DR - 将文件中的游戏关卡解析为Python/PyGame的最佳方法.

pay*_*yne 8

如果您不需要手动编辑,或阅读任何其他程序中的级别,只需使用pickle.

将您的关卡数据存储在一个Python对象中,并且(几乎)代码中的一行代码可以读写.