【问题标题】:Save and load game state in Window Game在 Window Game 中保存和加载游戏状态
【发布时间】:2012-12-27 09:46:56
【问题描述】:

目前我使用 XNA 4.0 Game Studio 和 Visual Studio 2010 提供的 Window Game Statement Management 模板来开发游戏。关于如何保存和加载游戏状态有什么建议吗?以前我开发了一个窗口电话游戏,数据存储在 IsolatedStorage 中。窗口游戏有什么相似之处吗?

         using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForAssembly())
            {
                using(IsolatedStorageFileStream stream = file.OpenFile("class123.xml",FileMode.Create))
                {
                    XmlWriterSettings setting = new XmlWriterSettings();
                    setting.Indent = true;
                    using(XmlWriter writer = XmlWriter.Create(stream,setting))
                    {
                        XmlSerializer serializer = new XmlSerializer(typeof(Student));
                        serializer.Serialize(stream,new Student(){Name = "AhLim"});
                    }

                    using (XmlReader reader = XmlReader.Create(stream))
                    {
                        XmlSerializer serializer = new XmlSerializer(typeof(Student));
                        studentA = (Student)serializer.Deserialize(reader);
                    }
                }
            }

这是我最近在 Window Game Applicaiton 中使用的代码。但是,当我到达反序列化部分时,它显示 InvalidOperationException 未处理并且 XML 文档 (0,0) 上的错误。我可以知道问题出在哪里吗?

【问题讨论】:

  • Windows (XP/Vista/7) 确实有独立存储

标签: c# xna load storage


【解决方案1】:

Windows Phone 游戏中使用的代码应该可以在 PC 上正常运行。数据将存储在 C:\Users\\Documents\SavedGames

【讨论】:

    【解决方案2】:

    试试

     serializer.Serialize(writer, new Student() { Name = "AhLim" });
    

    而不是

     serializer.Serialize(stream, new Student() { Name = "AhLim" });
    

    看起来IsolatedStorageFileStream 使用了错误的编码。

    【讨论】:

      猜你喜欢
      • 2012-10-01
      • 2011-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-02
      相关资源
      最近更新 更多