2

我目前正在使用适用于 Windows Phone 7 的 XNA Game Studio 4.0 框架编写 2D 游戏。如果用户想要保存/加载或恢复游戏,我已经到了解决游戏墓碑问题的阶段稍后的比赛。

我目前正在使用TiledLib库来渲染地图等,以及屏幕状态管理示例作为我的项目的基础(例如,用于墓碑的事件都已到位)。MapTiledLib 库中的对象有一个多维数组 ( [,]) 来存储每个TileLayer. 我的地图只有一个TileLayer,并且只有 1 个Texture2D具有不同的Rectangle源位置,具体取决于图块显示的内容。重要的是,我跟踪每个图块的所有适当源矩形,以便可以按照玩家离开的方式恢复已编辑的地图。

我在尝试找出实现游戏屏幕墓碑的最佳方式(或任何方式)时遇到了很多麻烦。我在序列化方面没有太多经验,这是我第一次尝试为 Windows Phone 7 应用程序建立墓碑。我知道非锯齿状数组无法使用通常的 XmlSerializer 进行序列化,有没有办法解决这个问题?自定义序列化程序是一个很好的路径吗?优点缺点?有没有其他人有使用 TileLib 和序列化游戏屏幕的经验?还是带有 X,Y 坐标的 2D 地图?多少数据是太多数据而无法序列化以进行墓碑化?

提前感谢您的回答和建议。

4

1 回答 1

3

我建议您使用BinaryReaderand编写您自己的序列化例程BinaryWriter,因为您可以完全序列化任意数据,完全控制过程,并且自动 XML 序列化速度快得多。

当然,缺点是您必须使您的读写例程彼此同步,并且与您正在序列化的类保持同步。如果您的代码发生更改(您添加或删除数据以进行序列化),您还需要一种机制来处理序列化格式的更改。

于 2011-06-10T16:11:23.443 回答