【发布时间】:2014-04-29 01:08:27
【问题描述】:
我想制作一个基于文本的 rpg 游戏,但我遇到了一个问题,我对 c++ 相当“新”,知道一些概念但仍在学习。 所以我想知道的是;如何打开文件并编辑其中的值? 假设我有一个名为 health 的文件,用于我的角色健康并将其设置为 100。我知道您可以将变量减去您设置怪物要做的伤害,但我不知道我如何存储健康和编辑它,而我的程序继续进行。
即。这是我得到的最远的:
ifstream objectFile("health.txt");
string health;
double NoH;
cout << "welcome" << endl;
objectFile >> health >> NoH;
cout << health << ' ' << NoH - 15;
NoH = 生命值。到目前为止,我的程序所做的只是读取文件,然后从 100 中减去 15,因为这就是怪物造成的伤害。但是我如何让它“取出”这个值并从中减去 15?然后把它存回去,所以它是 85,下次我被击中它的 65 等等,所以它使游戏的目标是生存,即避免被击中和东西。我的意思是避免你的 hp 达到 0,但我也想学习如何通过让他们的 hp 达到 0 来实现你可以杀死的简单的基于文本的生物。 谢谢
【问题讨论】:
-
在游戏中你可能会拥有比这些更多的状态信息。作为设计的一部分,您应该考虑如何表示所有这些数据以及如何(以及何时)持久保存它。许多游戏不会在每次更改时都保存到磁盘,而是定期(或在用户选择时)保存,状态主要只保存在内存中。
-
一种选择是使用 INI 文件格式。在启动时将其内容读入局部变量,在游戏进行时修改这些变量,并在退出前将更新值的整个列表写回 INI 文件(完全替换原始 INI 文件)。
-
@joe 是的,它只是一个示例代码,我也将实现函数和类,但主要我想知道如何读取和写入文件的输出。如果您可以详细说明,那么“主要保存在内存中的状态”到底是什么意思:)
-
我同意@Joe!即使状态信息会少一些,将信息主要保留在内存中也是合理的!
-
@cppnewb 我的意思是——你在 C++ 中有类、对象、变量。将您的信息存储在其中。有一组例程来获取这些结构并可以将它们持久化并从磁盘读取它们,但不要使用磁盘存储作为代码中的中间人来共享信息。