XNA基本高分列表

时间:2011-08-07 17:16:50

标签: xna storage xna-4.0

我希望实现十大分数的基本高分榜。它只是本地存储在xbox / pc上,不需要任何网络/全局同步。我尝试将下面的链接更新为xna4,但是在两种格式上都收到了序列化错误,还有将分数数据拉成漂亮的屏幕格式的问题 - 任何想法或替代方法? http://xnaessentials.com/tutorials/highscores.aspx/tutorials/highscores.aspx

使用游戏手柄输入玩家名称的建议方法是什么? (不使用个人资料名称)

由于 保罗。

1 个答案:

答案 0 :(得分:0)

如您所见,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];
    }
}