我有一个简单的游戏用于Windows手机,玩家在屏幕周围拖船以收集物品并避开小行星。每次收集项目时,屏幕顶部的分数计数器都会增加一个。
问题是,一旦玩家的船与小行星发生碰撞,我想让游戏过渡到排行榜,我无法弄清楚我将如何处理它。
我有一个存储得分值的整数,但是一旦玩家与小行星发生碰撞,该重置整数的值(当然)。
如何将死亡前玩家得分的最终值存储到单独的整数并将其显示在排行榜屏幕上?无需解释游戏状态管理,我已经知道如何解决这个问题。
答案 0 :(得分:2)
首先,在处理小行星碰撞时发生的事情的代码中,您需要先保存您的分数,然后在完成后重置它。当您显示它时,您需要从序列化文件加载排行榜。
我不打算详细介绍,因为我找到了一个基本上解释了我会告诉你的网站:http://xnaessentials.com/tutorials/highscores.aspx
当然,您需要稍微修改一下并添加一种订购高分的方法,但我怀疑这应该让您开始。
答案 1 :(得分:1)
好的。在检测到碰撞时,您可以将变量分数重置为0,将分数存储在隔离的存储设置中,并将密钥作为配置文件名称。只有当已经存在的键值较小时才可以进行存储等附加操作,或者如果没有找到键值,则可以直接存储它。
答案 2 :(得分:0)
在游戏结束后保留高分的最简单方法是使int保持静态,并在新游戏开始时将其重置为零 - 而不是在游戏结束时。
所以在你的MyGame课程中: internal static int Score = 0;
无论什么功能开始新游戏: MyGame.Score = 0;
并在您的排行榜屏幕中: 列出highScores = new List();
...
if(highScores.Count == 0 || MyGame.Score> highScores [highScores.Count-1]){ //得分为排行榜排行榜(您需要将其限制为最高分数) }