2D RPG 中的 XML、YAML 和 JSON [重复]

2024-03-25

我不知道对于 C++ 2D RPG 是否使用 XML、YAML 或 JSON。

这是我的想法:

  • 我需要一些简单的东西,不仅可以保存玩家数据,还可以保存环境数据,例如对象(x,y)坐标;加载时间;日期;图形配置等

  • 我需要一些灵活、易于使用、重量轻但功能强大的东西来处理上述问题。

哪个是最好的选择?我有 JavaScript 中 JSON 的经验,但没有 C++ 的经验。如果这是要走的路线,是否有任何在 C++ 中解析 JSON 的好的参考资料?

Edit

老实说,如果文本文件似乎是此类问题的最简单且最有效的解决方案(特别是如果我可以将其写入二进制文件),那么我会洗耳恭听。

Edit 2

也请随意提供其他建议。


我会使用满足您要求的最简单的东西。

如果您不需要分层存储,那么平面表格文件比其他任何文件都更容易处理。您所要做的就是从磁盘读取行并在选项卡上拆分。

如果您正在寻找更多的键/值对类型存储(而不是事物列表),那么INI文件 http://en.wikipedia.org/wiki/INI_file可以合理。这种格式具有很大的灵活性,但当您开始做比其设计目的更复杂的事情时,对其进行推理可能不太容易理解。

如果您需要分层,JSON 可能会更简单。有多种语言的 JSON 库,听起来您已经很熟悉了。

https://stackoverflow.com/questions/245973/whats-the-best-c-json-parser https://stackoverflow.com/questions/245973/whats-the-best-c-json-parser

sqlite http://www.sqlite.org/可能是另一种选择。 SQL 中有龙,但是有了 sqlite 的一个很好的 C++ 包装器,它can易于管理。在我看来,主要的好处是 ACID。

YAML 规范看起来有点长,所以我可以猜测它有更多的厨房水槽。浏览一下 libyaml 文档,该 API 看起来有点像我过去使用过的 SAX 接口。我对它没有任何后验知识,但如果没有充分的理由,我会不愿意开始使用它。

XML 很难处理,所以不要选择使用它。这有很多原因。我认为在我看来最相关的是,它很容易使使用它的代码比其他情况更复杂。我见过的任何使用 XML 设计的系统,对 XML 的推理都比它试图支持的设计兴趣更复杂。它有有效的用途,尽管很少有其他存储系统不能满足要求。

无论您选择哪一种,都请编写尽可能少的代码来管理它。您确实想编写引擎首先使用的类。然后担心序列化它们。如果您让序列化影响您的类设计,您可能会后悔。 :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2D RPG 中的 XML、YAML 和 JSON [重复] 的相关文章

随机推荐

  • SwiftUI - 如何在 macOS 上隐藏窗口标题

    在具有新 SwiftUI 框架的 macOS 上 无需AppDelegate SceneDelegate 如何隐藏窗口标题 我发现 Apple 的这篇文章描述了如何为 Catalyst 应用程序执行此操作 但现在没有该委托 我该如何实现此目
  • 将 int 附加到 std::string

    我尝试了两种不同的方法来附加int to a std string 令我惊讶的是 我得到了不同的结果 include
  • Snakemake 输入函数异常。 AttributeError:“通配符”对象没有属性

    我有一个带有 ChIP seq 单端 fastq 文件名的列表对象allfiles path file1 fastq path file2 fastq path file3 fastq 我正在尝试设置该对象 allfiles 作为通配符 我
  • 如何以附加模式写入文本文件

    我的应用程序基于导航 UItextView 用于注释 UIViewController 我正在将文本数据写入文件 现在我需要在附加模式下编写 我正在尝试以下代码 但每次都使用相同的文本数据写入两次 并且不附加下一个文本数据到文件 void
  • 如何使 NodeJS 中的 request 调用同步?

    我的 Nodejs 应用程序中有一个名为 get source at 的函数 它接受 uri 作为参数 其目的是从该 uri 返回源代码 我的问题是我不知道如何使函数同步调用请求 而不是给它那个回调函数 我want控制流停止加载 uri 所
  • 将两个已排序的数组合并为一个

    嗨 我被问了以下问题 给定两个数组 即 array1 和 array2 它们都包含按排序顺序的数字 Array1 还包含 1 例如 array2 中的数字与 array1 中的 1 的数量一样多 示例如下 array1 1 1 1 1 56
  • 如何在Python中展平元组

    我有一个列表的以下元素 该列表有 100 个元素长 50 2 7387451803816479e 13 219 如何将每个元素转换为如下所示 50 2 7387451803816479e 13 219 a b c for a b c in
  • 当我更新顶点缓冲区对象时,应该如何更新它使用的顶点数组对象?

    通过 glBufferData 更新 VBO 尤其是其大小 可能会更改其物理内存地址 但不会更改 glGenBuffers 设置的缓冲区对象名称 VBO 通过调用 glVertexAttribPointer 链接到 VAO 其中有关 VBO
  • 在 Atom-shell 中禁用退格键

    我一直在搜索 interwebz 和 Atom shell 文档 试图找出如何禁用back 的功能backspace浏览器窗口中的键 我不想求助于 javascriptonkeydown监听器 有效 而是使用更本机的东西 更多地在应用程序级
  • 将值从文本框传递到控制器

    如何从文本框 电子邮件列表 获取值并将其发送到控制器 我一直在使用webforms 这是我第一次接触mvc View Html TextBox EmailList Html Action SendEmails 控制器 public Acti
  • 是否有用于 jasmine 角度控制器测试的生成器?

    我正在寻找能为角度控制器生成样板茉莉花测试的东西 看来您可以将控制器的依赖项拉出来并将它们放入规范中并节省一些输入 如果我是第一个有这个想法的人 我会感到震惊 但我找不到任何可以做到这一点的东西 除了一个似乎不起作用的自耕农项目 我最近在
  • ViewPager2 notificationItemChanged 的​​ FragmentStateAdapter 未按预期工作

    我正在将 ViewPager2 与 FragmentStateAdapter 一起使用 并且正在调用 notificationItemChanged position 但正如预期的那样 createFragment 方法不会再次调用 这是预
  • TinyMCE客户端验证问题

    我在使用 TinyMCE 编辑器时遇到问题 我的表单带有很少的文本字段和文本区域 tinymce 并启用了客户端验证 当我单击 保存 按钮时 所有文本字段都会进行验证 但需要单击两次才能验证tinymce内容 此外 验证仅在字段为空或条件不
  • 异步 ServiceController.WaitForStatus 如何执行?

    So ServiceController WaitForStatus https msdn microsoft com en us library system serviceprocess servicecontroller waitfo
  • 如何将javascript变量值分配给php变量[重复]

    这个问题在这里已经有答案了 我已经宣布了JavaScript 变量 var myJavascriptVar 12345 并且无法将该值分配给php多变的 myPhpVar myJavascriptVar 我知道 Ajax 可能可以解决我的问
  • 从现有 CXF Rest 服务生成 wadl

    我有使用 CXF 实现的工作 JAX RS 服务 如何生成 wadl 或者有类似球衣的东西吗http path to your restapp application wadl http path to your restapp appli
  • Facebook“无法从 URL 检索数据”

    当尝试对 facebook 进行图形 api 调用时 我收到以下错误 我知道我的回调 url 很好 因为当我在 facebook 调试器中测试它时 它可以很好地查看页面 我也在使用 Google App Engine 我真的认为这个错误可能
  • C++ 匿名变量

    为什么这不起作用 0 define CONCAT x y x y 1 2 define VAR LINE x 3 int CONCAT anonymous LINE x 4 5 define VAR LINE2 x 6 int anonym
  • 如何向图表添加适当的噪声

    我有一个 matlab 图表 类似轨迹的东西 我想向图表添加噪音 我尝试添加正态分布噪声 使用兰特 例如 x1 x a rand size x 对于 y 也是如此 结果附在下面 这不是我想要的 这给了我一个散点图 或者完全嘈杂的图 如下图所
  • 2D RPG 中的 XML、YAML 和 JSON [重复]

    这个问题在这里已经有答案了 我不知道对于 C 2D RPG 是否使用 XML YAML 或 JSON 这是我的想法 我需要一些简单的东西 不仅可以保存玩家数据 还可以保存环境数据 例如对象 x y 坐标 加载时间 日期 图形配置等 我需要一