XNA - WP7 - TiledLib - 序列化和墓碑

时间:2011-06-10 09:25:57

标签: serialization windows-phone-7 xna tombstoning

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

我目前正在使用TiledLib库来渲染地图以及screen state management示例作为我的项目的基础(例如,正确的逻辑删除事件都已到位)。 TiledLib库中的Map对象具有多维数组([,]),用于在每个TileLayer内存储地图的切片。我的地图只有一个TileLayer,只有1个Texture2D具有不同的Rectangle源位置,这取决于图块显示的内容。请务必跟踪每个图块的所有相应源矩形,以便可以按照播放器离开的方式恢复已编辑的地图。

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

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

1 个答案:

答案 0 :(得分:3)

我建议您使用BinaryReaderBinaryWriter编写自己的序列化例程,因为您可以完全控制整个数据,并完全控制进程,并且相当比自动XML序列化更快。

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