XNA XBOX порт рекордов - PullRequest
       36

XNA XBOX порт рекордов

0 голосов
/ 19 октября 2011

Я пытаюсь перенести мою компьютерную игру XNA на xbox и пытаюсь внедрить xna easystorage вместе с моим существующим управлением файлами ПК для рекордов. В основном пытается объединить http://xnaessentials.com/tutorials/highscores.aspx/tutorials/highscores.aspx с http://easystorage.codeplex.com/

Я столкнулся с одной конкретной ошибкой, касающейся LoadHighScores () как ошибки с return (data); - Использование неназначенной локальной переменной data.

Полагаю, это связано с асинхронным дизайном easystorage / xbox !? но не уверен, как решить - ниже приведены примеры кода:

ОРИГИНАЛЬНЫЙ ПК-КОД: (работает на ПК)

общедоступная статическая HighScoreData LoadHighScores (строковое имя файла) { Данные HighScoreData; // Получить путь к сохраненной игре

string fullpath = "Content/highscores.lst";
// Open the file
FileStream stream = File.Open(fullpath, FileMode.Open,FileAccess.Read);    
        try    
        {         // Read the data from the file
    XmlSerializer serializer = new XmlSerializer(typeof(HighScoreData));
    data = (HighScoreData)serializer.Deserialize(stream);    
        }    
        finally
         {        // Close the file        
            stream.Close();    
        }     
        return (data);
    }

ПОРТ XBOX: (с ошибкой)

общедоступная статическая HighScoreData LoadHighScores (контейнер строки, имя файла строки) { Данные HighScoreData;

        if (Global.SaveDevice.FileExists(container, filename))
                {
                    Global.SaveDevice.Load(container, filename, stream =>
                            {
                                File.Open(Global.fileName_options, FileMode.Open,//FileMode.OpenOrCreate,
                                         FileAccess.Read);  
                                try    
                            {         
                                            // Read the data from the file
                                        XmlSerializer serializer = new XmlSerializer(typeof(HighScoreData));
                                        data = (HighScoreData)serializer.Deserialize(stream);    
                            }    
                              finally
                             {      
                                    // Close the file  

                                stream.Close();

                             }   

                            });

                }


        return (data);
    }

Есть идеи?

1 Ответ

2 голосов
/ 19 октября 2011

Назначить данные перед возвратом. ;)

  data = (if_struct) ? new your_struct() : null;
  if (Global.SaveDevice.FileExists(container, filename))
  {
     ......
  }
  return (data);
}
...