Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 让游戏读取另一个包含数据的文件是否专业?_Python_File - Fatal编程技术网

Python 让游戏读取另一个包含数据的文件是否专业?

Python 让游戏读取另一个包含数据的文件是否专业?,python,file,Python,File,这个问题有点复杂,所以我会介绍一下情况: 我目前正在用Python编写我的第一个真正的游戏,让我们称之为“game.py”,它有很多具有各种统计数据和其他类似数据的字符 目前,数据存储在game.py中,但随着程序越来越大,这将变得非常不方便,因为查找所述数据需要更长的时间 然后我突然想到,我应该试着用“open”让game.py读取一个文件,比如说“characters.txt”,并将其转换为game.py中字符的格式,本质上是将数据从一个文件迁移到另一个文件 这是“专业”解决方案吗?将其放在

这个问题有点复杂,所以我会介绍一下情况:

我目前正在用Python编写我的第一个真正的游戏,让我们称之为“game.py”,它有很多具有各种统计数据和其他类似数据的字符

目前,数据存储在game.py中,但随着程序越来越大,这将变得非常不方便,因为查找所述数据需要更长的时间

然后我突然想到,我应该试着用“open”让game.py读取一个文件,比如说“characters.txt”,并将其转换为game.py中字符的格式,本质上是将数据从一个文件迁移到另一个文件


这是“专业”解决方案吗?将其放在game.py中可查找的位置更好,还是有更好的解决方案?

正如评论中所建议的,这是处理游戏数据的正确方法

游戏包含大量数据:游戏对象和实体、级别、设置、材质和着色器。这些文件通常表示为文本文件

传统上,XML用于存储这些类型的元素,但另一个好的选择是JSON。JSON很简单,解析速度应该比XML快。以JSON格式存储游戏数据,使您能够轻松地将其放入游戏中,并像字典一样访问它

这可能带来的一个问题是,人们很容易篡改数据,因为JSON很容易读取和编辑。然而,这是一个开始的好方法。 对于更高级的方法,可以查看加密方法或考虑以二进制格式存储数据。


您可能会对以下内容感兴趣,其中详细介绍了如何将JSON用于游戏。

正如评论中所建议的,这是处理游戏数据的正确方法

游戏包含大量数据:游戏对象和实体、级别、设置、材质和着色器。这些文件通常表示为文本文件

传统上,XML用于存储这些类型的元素,但另一个好的选择是JSON。JSON很简单,解析速度应该比XML快。以JSON格式存储游戏数据,使您能够轻松地将其放入游戏中,并像字典一样访问它

这可能带来的一个问题是,人们很容易篡改数据,因为JSON很容易读取和编辑。然而,这是一个开始的好方法。 对于更高级的方法,可以查看加密方法或考虑以二进制格式存储数据。


您可能对以下内容感兴趣,其中详细介绍了如何将JSON用于游戏。

您可以将其保存在另一个.py文件中,然后导入它:

字符_data.py:

characters={'name':'Me',....
...
}
game.py:

from characters_data import characters
print characters['name']

您可以将其保存在另一个.py文件中,只需导入即可:

字符_data.py:

characters={'name':'Me',....
...
}
game.py:

from characters_data import characters
print characters['name']


如果您担心最终用户很容易操作底层设置(即“Modding”),那么您可以尝试使用将文件保存为二进制文件。如果您想添加额外的威慑,可以在将其存储到文件之前添加到字符串中,只需将密钥保留在.py文件中(尽管如果有人受到激励,他们可以通过反向工程main.pyc来找到它)

如果您担心最终用户很容易操作底层设置(即“修改”),然后,您可以尝试使用将文件保存为二进制文件。如果您想添加额外的威慑,可以在将其存储到文件之前添加到字符串中,只需将密钥保留在.py文件中(尽管如果有人受到激励,他们可以通过反向工程main.pyc找到它)

这就是文件的用途!使用模块化设计是一种很好的做法。在模块化设计中,您将代码拆分为多个模块,并将数据与代码分开。因此,是的,将字符数据存储在文件中是“专业的”。实际上,这是正确的方法。你可能会考虑将所有需要的信息存储在数据库中,这是一种文件类型。接受你得到的答案之一。这就是文件的用途!使用模块化设计是一种很好的做法。在模块化设计中,您将代码拆分为多个模块,并将数据与代码分开。因此,是的,将字符数据存储在文件中是“专业的”。实际上,这是正确的方法。您可能会考虑将所有需要的信息存储在数据库中,这是一种文件类型。接受您得到的答案之一。Boo,hiss re:JSON。XML为您提供了名称空间支持——例如,您可以在同一文档中使用SVG图形并使用任何SVG编辑器(即Inkscape)进行编辑,其中包含游戏逻辑(如JavaScript)、模板逻辑(如Genshi)或描述布局的HTML等等,而且,您所有适当感知的工具都只能引用命名空间中与该工具相关的数据……如果主要目标是紧凑性或解析速度,那么也有非常好的选项关注于这两个方面(我个人非常喜欢);但是对于一个刚起步的人来说,灵活性、互操作性以及与现有创作工具的集成都是非常好的事情,XML非常适合这项工作……还有XQuery/XPath。如果您使用的是原始JSON,那么可以使用一些工具来运行结构查询、转换和c。你的数据根本不存在;有了XML,就有了一个强大的生态系统。需要明确的是:我并不认为JSON永远是错误的工具,或者XML永远是正确的工具,但我认为下意识的“XML过于复杂了!”反应通常来自一个不太熟悉的地方,不知道这些“复杂性”首先增加了什么好处(因此)我同意XML有很多成熟的工具和技术。我无意对XML进行负面评价。我只是根据我的经验来回答。JSON是一个简单的入门工具,就我个人而言,我喜欢这样一个事实:我可以用
数据加载它