当前位置: 首页 > 知识库问答 >
问题:

如何在Java中解决关闭游戏后高分重置为0的问题

酆勇
2023-03-14
1st time: My high score is 50 and it saves my score to file
2nd time: I close the game and run it back my score is 30. It still saves it to high score file
This is because the high score every time it runs is 0.
private String highScore = "Nobody:0"; //I think this is the problem because highscore =0 at start
public void CheckHighScore() {
        if (score > Integer.parseInt((highScore.split(":")[1]))) {

            String name = JOptionPane.showInputDialog("You set a new highScore. What 's your name?");
            highScore = name + ":" + score;

            File scoreFile = new File("highscore.dat");
            if (!scoreFile.exists()) {
                try {
                    scoreFile.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            FileWriter writeFile = null;
            BufferedWriter writer = null;
            try {
                writeFile = new FileWriter(scoreFile,true);
                writer = new BufferedWriter(writeFile);
                writer.write(this.highScore);
                writer.newLine();
            }
            catch (Exception e) {

            }
            finally {
                try {
                    if (writer != null)
                        writer.close();
                }
                catch (Exception e) {}

            }
        }
    }

共有1个答案

寇涵容
2023-03-14

你能回答一个问题吗?

i.)当游戏加载时,你想让你的最后一个高分列表可用吗?如果是,那么你不从文件中读取任何东西,而是简单地向它写入。你可以简单地从列表中获取最高的分数。

->如果第一部分为true,则yes,字符串highScore=“nobody:0”是错误的,因为您每次都将该值初始化为零,相反,应该从存储数据的文件中读取该值。

 类似资料:
  • 问题内容: 我做了一个简单的游戏,你必须躲避障碍并收集硬币。每枚硬币将给您1分。在玩游戏时,有一个得分标签。如何创建高分标签,即使他们退出游戏也会记住高分。我也想知道如何将高分与游戏中心联系起来。 任何帮助将非常感激。 到目前为止,这是我确定获胜者何时赢得比赛的方式。 编辑 编辑2 编辑3 ? 问题答案:

  • 问题内容: 我使用pygame在python中做了一个非常简单的游戏。分数基于玩家所达到的等级。我将级别作为一个名为的变量。我想在游戏开始或结束时显示最高级别。 我会更乐于显示一个以上的分数,但是我看到的所有其他线程都太复杂了,以至于我无法理解,因此请保持简单:我是一个初学者,只需要一个分数。 问题答案: 我建议您搁置。例如: 下次打开程序时,请使用: 它将从磁盘读取。如果需要,可以使用此技术保存

  • 这是一个问题:输入10个数字(来自user),然后从user输入另一个数字。如果该数字是这10个enterd数字中的一个,则打印yes,否则打印No。我不知道怎么解决这个。

  • 问题内容: 这个问题已经在这里有了答案 : 浮点数学运算是否损坏? (31个答案) 4年前关闭。 使用Math.cos函数在Java中计算余弦90时遇到一些问题: } 当我计算cos90或cos270时,它给了我荒谬的值。应该为0。我使用91或271测试,给出了接近0的正确值。 我应该怎么做才能使cos 90的输出= 0?因此,它使输出x = 0和y = 4。 谢谢建议 问题答案: 您所得到的很有

  • 我正在尝试用SFML 2.1为我的2D超级马里奥兄弟克隆包碰撞。我尝试了很多不同的解决方案和想法,但我无法让任何东西正常工作。 我有一个播放器,它目前在自己的更新()中检查碰撞(如下所示) 当前: 1. 我的碰撞检测到碰撞略微偏移。如果你能找到任何明显的错误,我会很高兴知道。 2.我不确定这是否是一个足够好的解决方案,因为我需要检测4个方向的碰撞(跳跃,撞到我的头块。摔倒在方块上,左右碰撞) 3.

  • 我试图理解RFC 7230中提到的TCP重置问题:HTTP/1.1消息语法和路由,第6.6节: 6.6.拆卸 Connection header字段(第6.1节)提供了一个“close”连接选项,当发送方希望在当前请求/响应对之后关闭连接时,应发送该选项。 因此HTTP/1.1具有持久连接,这意味着可以在同一连接上发送多个HTTP请求/响应对。 发送“关闭”连接选项的客户端不得在该连接上发送更多请