2011-06-10 80 views
2

我目前正在为使用Windows Phone 7的XNA Game Studio 4.0框架编写一个2D游戏。我已经到了我正在处理墓地石头游戏问题的阶段if用户想要保存/加载,或者如果他们稍后恢复游戏。XNA - WP7 - TiledLib - 序列化和墓碑

我目前使用的TiledLib库地图的绘制等,也是screen state management例子为我的项目的基础(例如,用于正确立碑的事件全部到位)。 TiledLib库中的Map对象具有多维数组([,]),用于在每个TileLayer内存储地图的图块。我的地图只有一个TileLayer,并且只有1 Texture2D不同的Rectangle源位置基于该图块显示的内容。重要的是我要跟踪每个区块的所有适当源矩形,以便可以按照玩家离开它的方式恢复已编辑的地图。

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

在此先感谢您的答案和建议。

回答

3

我会建议使用BinaryReaderBinaryWriter编写自己的序列化程序,你可以完全序列化任意数据,在对过程的完全控制的基础上,并与比自动XML序列化的速度大大更多。

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

+0

感谢您的建议。我开始通过扩展二进制读取器和编写器来支持我的类型。我认为这比改变代码库以支持自动序列化器更好。再次感谢。 – 2011-06-11 07:08:06