【问题标题】:XNA - WP7 - TiledLib - Serialization and tombstoningXNA - WP7 - TiledLib - 序列化和墓碑
【发布时间】:2011-06-10 09:25:57
【问题描述】:

我目前正在使用 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 地图?多少数据是太多数据而无法序列化以进行墓碑化?

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

【问题讨论】:

    标签: serialization windows-phone-7 xna tombstoning


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的建议。我首先扩展了二进制读取器和写入器以支持我的类型。我认为这比更改代码库以支持自动序列化程序更好。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多