我希望实现十大分数的基本高分榜。它只是本地存储在xbox / pc上,不需要任何网络/全局同步。我尝试将下面的链接更新为xna4,但是在两种格式上都收到了序列化错误,还有将分数数据拉成漂亮的屏幕格式的问题 - 任何想法或替代方法? http://xnaessentials.com/tutorials/highscores.aspx/tutorials/highscores.aspx
使用游戏手柄输入玩家名称的建议方法是什么? (不使用个人资料名称)
由于 保罗。
答案 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];
}
}