从文件中读取文本并将其作为代码运行

时间:2013-04-29 21:26:18

标签: c++ file-io

从C ++中的文件中读取文本有点简单。但是如果我想从我希望作为代码运行的文件中读取文本呢?

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

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

1 个答案:

答案 0 :(得分:3)

听起来你想创建某种domain-specific language (DSL),然后用它来写你的游戏关卡。

另一种选择是使用可以嵌入C ++的脚本语言,例如Luaembedding)或Pythonembedding)。

修改

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

我想你甚至可以做一些模板编程技巧,所以你可以访问它们,如:

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

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

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