Python中保存/加载游戏关卡的方法

2024-04-26 03:16:52 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我现在的阶段,游戏物理等是完整的,但我还没有找到一个方法,以保存和加载到游戏水平。到目前为止我的想法是:

1。方法头脑风暴

  • 建议使用YAML(因此,PyYAML)来处理级别输入/输出。
    • 它以纯文本的形式存储,但以结构化的方式存储。在
    • 易于编辑等-YAML的一个主要特点是它很容易被人阅读。在
  • 使用泡菜
    • 这是我过去用过的-将列表另存为单独的项目,并使用拆分项来区分它们。在
    • 同样,保存为纯文本,但使用拆分项(例如,{>;})作为学习者驾驶日志会使其更难理解。在

2。数据表示

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

我所要寻找的是实现这一目标的最佳方法的建议。在

TL;DR-将游戏级别从文件解析为Python/PyGame的最佳方法。


Tags: 方法字符串文本游戏yaml列表颜色作业
3条回答

那么一个.txt文件的简单方法呢?在

例如,如果这是一个二维游戏,有id,那么3=stone,4=grass,然后逐行读取并传输到显示。在

这对级别编辑器很好,因为它们很容易保存数据。如果重要的数据需要加密,这不是一个好的选择。在

如果不需要手工编辑,或者不需要读取任何其他程序中的级别,只需使用pickle。在

将级别数据存储在单个Python对象中,它(几乎)是代码中读写的一行代码。在

泡菜就是为这种东西做的。您不需要任何分隔符来区分列表中的项;只需对整个列表进行pickle。在

相关问题 更多 >