【问题标题】:Read and write image data读取和写入图像数据
【发布时间】:2015-03-03 22:16:53
【问题描述】:

我一直在编写用于制作 2D 游戏的地图编辑器。我快完成了,但是我无法加载地图。

我有多种保存和加载地图的选项。我有:

DAT 文件
BIN 文件
地图文件
XML 文件

XML 不是问题,但其他文件类型才是。我需要能够读取图像数据并将图像数据写入其他 3 种文件类型。我建议只删除这些文件类型,但有时使用非 XML 的地图很有用。

更新:

我不是要求遵循已经产生的算法。我的意思是将图像数据写入文件,然后将数据读回位图对象。

【问题讨论】:

  • 需要有关 DAT、BIN 和 MAP 文件格式的更多信息。您只需要知道如何打开和阅读这些文件吗?您需要有关如何解析它们的指针吗?
  • 我以前在保存非常简单的数据(如字符串和整数)时使用过这些文件类型。
  • 这些真的是常见的文件类型吗?如果是这样,则必须有定义和格式说明。你或任何人可以提供链接吗?我在第一次点击时没有找到任何东西.. - 虽然找到gamedev.stackexchange.com..
  • @HarrisonPickering .dat, .bin 文件通常只是一些记录(或可能是专有)文件格式的通用名称。许多游戏都有.dat 文件,但它们实际上可能采用不同的实际文件格式,无论是对特定文件中保存的数据类型最方便的格式。

标签: c# image stream


【解决方案1】:

听起来您所说的是为您的游戏地图数据提供专有格式。

您要做的是查看对象关系映射(您可以从这里开始:http://en.wikipedia.org/wiki/Object-relational_mapping)。您想提出一种在存储(二进制文件)中构建对象(地图图像)的好方法。您需要编写某种遵循这种接口的类:

public interface ORMap
{
    public void Save(MyMap map, string fileIdentifier);
}

听起来您已经为 XML 完成了这项工作。

您可以实现该接口以将您的 MyMap 对象转换和/或序列化为所需的格式,并使用 fileIdentifier 作为名称将其写入磁盘。

没有一种标准的方法可以做到这一点,但如果您有其他类似游戏的示例,您可以尝试查看它们的 API 和/或文件结构并进行模仿。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多