【问题标题】:XNA displaying data from text file to arrayXNA 将数据从文本文件显示到数组
【发布时间】:2011-11-14 01:04:59
【问题描述】:

现在,我要为我的游戏制作记分牌。 程序将显示文本文件中的数据。

在程序中,我有球员姓名和分数的字符串数组。

这是我的流式阅读器代码:

 public void ReadHighScores()
    {
        try
        {
            using (StreamReader sr = new StreamReader("highscore.txt"))
            {

                string line;
                while ((line = sr.ReadLine()) != null)
                {
                    string[] parts = line.Split(',');
                    for (int i = 0; i < 5; i++)
                    {
                        highScores.PlayerName[i] = parts[0];
                        highScores.Score[i] = parts[1];
                    }
                }
            }


        }
        catch (FileNotFoundException ex)
        {
            //IntializeHighScores();
            //WriteHighScores();
        }
        catch (Exception ex)
        {
            // Handle unexpected exception
        }
        finally
        {
            // Close the file
        }
    }

这就是我绘制记分牌的方式:

        for (int i = 0; i < 5; i++)
        {
            spriteBatch.DrawString(spriteFont, i + 1 + ". " + highScores.PlayerName[i].ToString()
           + "......" + highScores.Score[i].ToString(), new Vector2(350, 150 + 50 * (i)), Color.Red);
         }

当我运行游戏时。成功从文本文件中读取数据。但它只显示文本文件中的最后一个数据。

我的文本文件包含:

 Alpha, 3500
 Beta, 3600
 Gamma, 2200
 Delta, 3400
 Epsilon, 3600

并且程序只显示循环中的最后一个数据:

Epsilon 3600
Epsilon 3600
Epsilon 3600
Epsilon 3600
Epsilon 3600

我必须怎么做才能显示文本文件中的所有数据,而不仅仅是最后一个???

【问题讨论】:

    标签: arrays xna streamreader text-files


    【解决方案1】:

    您几乎是对的,但是对于您从文件中读取的每一行,您为高分数组的每个成员分配相同的数据(在for 循环中)。你需要弄清楚你在哪一行(只是有一个计数器在文件读取循环的每个循环中递增)并且只更新各自的PlayerNameScore

    【讨论】:

    • 不,在while ((line = sr.ReadLine()) != null) 循环中,取出for 循环,并使用变量来跟踪while 循环运行了多少次。用它来索引数组。
    • 所以我需要在 while ((line = sr.ReadLine()) != null) 上面添加 for 循环...?
    • 嗯,我还是不明白。你能给出一个代码示例吗...?
    • ReadHighScores 的顶部创建一个变量i。取出 ReadHighScores 中的 for 循环。在while ((line = sr.ReadLine()) != null) 循环体的末尾,放置i++;
    • 哦,是的。有用!!!谢谢slugonamission。顺便说一下,比较分数怎么样。所以它会在顶部显示最高的...?
    猜你喜欢
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 2013-07-11
    • 2015-09-20
    • 2015-03-03
    • 1970-01-01
    相关资源
    最近更新 更多