XNA основной список рекордов - PullRequest
1 голос
/ 07 августа 2011

Я собираюсь реализовать базовый список рекордов из десяти лучших результатов. Он будет храниться локально на xbox / pc и не потребует какой-либо сетевой / глобальной синхронизации. Я попытался обновить ссылку ниже на xna4, но получил ошибки сериализации в обоих форматах, а также проблемы с переносом данных партитуры в хороший формат экрана - есть идеи или альтернативные способы? http://xnaessentials.com/tutorials/highscores.aspx/tutorials/highscores.aspx

Также, каков будет предложенный способ ввода имени игрока с помощью геймпада? (без использования имени профиля)

Спасибо Пол.

1 Ответ

0 голосов
/ 08 августа 2011

Как видите, определение HighScoreData содержит только ссылку на элементы массива, а не сами элементы, поскольку они инициализируются в его конструкторе. XmlSerializer не знает, что такое count, и не может называть параметризованный конструктор. Поскольку HighScoreData равен struct, вы не можете определить конструктор без параметров (а тот, который происходит "за кулисами", не создает элементы массива).

Решение (которое меняет настолько мало кода, насколько это возможно) состоит в том, чтобы изменить HighScoreData на class и создать конструктор без параметров. Чтобы сделать последнее, вам придется заранее определиться с размером массивов. Итак:

public class HighScoreData
{
    public string[] PlayerName;
    public int[] Score;
    public int[] Level;

    public const int MaxScores = 100;

    public HighScoreData()
    {
        PlayerName = new string[MaxScores];
        Score = new int[MaxScores];
        Level = new int[MaxScores];
    }
}
...