XNA отображает данные из текстового файла в массив - PullRequest
0 голосов
/ 14 ноября 2011

прямо сейчас, я собираюсь сделать табло для моей игры.программа будет отображать данные из текстового файла.

в программе, у меня есть массивы строк для имени игрока и счета.

это мой код потокового чтения выглядит так:

 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

что я должен сделать, чтобы отобразить все данные из текстового файла, а не только последний ???

1 Ответ

1 голос
/ 14 ноября 2011

Вы почти правы, но для каждой строки, которую вы читаете из файла, вы назначаете каждому члену массива рекордов одинаковые данные (в цикле for).Вам нужно выяснить, на какой строке вы находитесь (просто есть счетчик, который увеличивается на каждый цикл цикла чтения файла) и обновлять только соответствующие PlayerName и Score.

...