0

在 C++ 中从文件中读取文本有点简单。但是,如果我想从我想作为代码运行的文件中读取文本怎么办?

我正在开发一款游戏,我意识到描述作为每个关卡一部分的那些对象的坐标和类似属性需要很长的篇幅。我想将它存储在文本文件中,而不是代码中,因为随着级别数量的增加,这将是非常长的时间

如果它是代码的一部分,我想阅读文本并运行它。怎么做?

4

1 回答 1

3

听起来您想创建某种特定领域的语言 (DSL),并使用它编写游戏关卡。

另一种选择是使用可以嵌入到 C++ 中的脚本语言,例如Lua ( embedding ) 或Python ( embedding )。

编辑

如果你真的想用 C++ 做所有事情,你可以将每个级别写成一个不同的文件(level1.h、level2.h、...),每个文件都有自己的命名空间(level1 等),并将它们全部包含在 " levels.h",您从 main.h 中包含它。

我想你甚至可以做一些模板编程技巧,这样你就可以像这样访问它们:

for (const unsigned int level_num, levels)
{
    Level<level_num>::load() ;
}

这种方法的问题是你失去了很多灵活性。每次更改游戏关卡时,都需要重新编译(和重新分发)程序。

一个极端(且不推荐)的解决方案是将 CPP 文件作为文本分发,并将它们即时编译为 DLL,然后加载... ::shiver::

于 2013-04-29T21:32:48.240 回答