我正在用c ++构建一个简单的2D游戏(用于学习目的),目前正在使用TinyXML解析XML文件以加载我的纹理和其他资源。然而,最近我对python很感兴趣,并且出于各种原因希望使用python而不是XML(再次出于学习目的)。
我想知道我是否可以将XML中的对象转换为python中的大型元组,然后使用嵌入式python解释器解析元组的元素并将数据提取到我的C ++游戏中。
Mount and Blade Warband(最初向我介绍Python模块的游戏)似乎是这样做的,并引起了我的兴趣。
以下是Mount和Blade的大元组中前两个元素的示例....
sounds = [
("click", sf_2d|sf_vol_3,["drum_3.ogg"]),
("tutorial_1", sf_2d|sf_vol_7,["tutorial_1.ogg"]),
但是,Mount和Blade要求您在这些python脚本上运行可执行文件,将它们转换为大型.txt文件......
drum_3.ogg 769
tutorial_1.ogg 1793
这让我相信游戏实际上正在解析这些文本文件。
我尝试做的仍然可能吗?
我一直在寻找一些API,并找到了一些好的,主要是Python / C或Boost.Python,并希望有人可以给我一些方向。
非常感谢,非常感谢任何意见!
答案 0 :(得分:1)
如果您的引擎(游戏或某些特殊资源处理器)是用python编写的,那么用python编写的资源/设置文件是合适的。
这是因为您可以从pythonic模块中import <resource-file>
,而不是在XML / text / other-format上进行解析。
如果你没有涉及python,我看不出有任何理由在python中编写资源。
关于Mount和Blade的例子 - 正如我所说,当游戏不是用python编写时,你应该使用一些资源预处理器。
答案 1 :(得分:-1)
或者您可以使用Lua作为资源。您可以在游戏中嵌入Lua解释器,这非常简单,并将您的资源保存为Lua表(有点像Python词典)。