XNA序列化...决定使用哪种方法

时间:2013-01-23 23:41:45

标签: c# .net xml serialization xna

我正在XNA中制作2D roguelike游戏(程序生成级别)

我刚开始看序列化/反序列化...... 我一直在阅读有关内置xml序列化程序和中间序列化程序的内容...... 他们听起来比他们的价值更麻烦......各种各样的弱点。例如。内置的xml序列化程序只会序列化公共字段(我已经尝试成为一名优秀的程序员并拥有尽可能多的私有或受保护的东西)并将制作多个引用副本,除非你采取特殊措施来防止它等等。< / p>

我觉得只需使用基本的.net xml编写器/阅读器,并为每个对象提供序列化/反序列化功能,我可以在其中保存所需的详细信息。 例如,这将是退出lvl的序列....

  1. 写下我所有的xml。
  2. 清除一切。 (我也必须编写清除函数,清除所有列表,组件等等(实际上我应该打扰“处理”事情吗?))
  3. 并加载lvl

    1. 阅读xml
    2. 使用xml ...
    3. 中的参数实例化所有新对象

      我的游戏有一个级别列表,每个级别都有房间列表,每个房间都有精灵和固体列表以及每个房间的组成

      xml文件可能看起来像这样(这只是一个粗略的指示,并不意味着真实!)

      <LevelList>
          <Level>
              <RoomList>
                  <Room>
                      <colour>255,105,76<colour>
                      <spritelist>
                          <sprite>
                              <ObjectType>WallBlock01</ObjectType>
                              <position>18673,34345</position>
                          </sprite>
                      </spritelist>
                      <solidsList>
                          <solid>2342,2342,23423,3453</solid>
                      </solidsList>
                  </Room>
              </RoomList>
          </Level>
      </LevelList>
      

      我的房间已经包含将采用原始数据的功能(矩形,颜色等等,并添加所有必要的可绘制游戏组件,物理对象,影子船体等)

      那么,你觉得这很疯狂还是一个好主意......?我认为这将是很多工作,但我也应该能够稳定地完成它,当我完成它将按预期工作,而我担心通过使用其中一个自动序列化器我将不断战斗使用它并更改我的代码以使其正常工作..

0 个答案:

没有答案