То, что я пытаюсь сделать, это сбросить имена и десятки моих игроков в массив темп для сортировки, чтобы они отображались на табло.Передача по ссылке вместо значения, почему?
По какой-то причине он, по-видимому, сохраняет ссылку на значения, а не на сами значения. После сортировки табло читает «player 4 - score 4» для каждой записи. Я знаю, что метод сортировки работает, я использовал его ранее в другой игре.
Начальные значения player1 - 1 player2 - 2 player3 - 3 player4 - 4
Одна вещь, которая отсутствует демпинг баллы в scorelist каждое обновление. Я взял его, пытаясь изменить порядок вещей, чтобы заставить его работать.
, пожалуйста, помогите мне понять, почему это происходит. Я прочитал эту статью здесь, и это не помогло. http://msdn.microsoft.com/en-us/library/0f66670z(v=vs.71).aspx
инициализации
ScoresList = DumpListToArray(PlayerManager.PlayerList);
Update
SortKillScores(ScoresList);
Draw
private static void DrawKillScores(SpriteBatch spriteBatch)
{
for (int i = 0; i < 4; i++)
{
spriteBatch.DrawString(font, "" + ScoresList[i].Name + " - " + ScoresList[i].KillScore, new Vector2(900, 0 + 20 * i), Color.White, 0f, Vector2.Zero, 0.5f, SpriteEffects.None, 1f);
}
}
Методы
private static ScoreHolder[] DumpListToArray(List<Player> tempList)
{
ScoreHolder[] tempArray = new ScoreHolder[4];
for (int i = 0; i < 4; i++)
{
tempArray[i] = new ScoreHolder();
tempArray[i].Name = tempList[i].PlayerName;
tempArray[i].KillScore = tempList[i].KillScore;
tempArray[i].TimeScore = tempList[i].TimeScore;
tempArray[i].PointScore = tempList[i].PointScore;
}
return tempArray;
}
private static void SortKillScores(ScoreHolder[] array)
{
for (int i = 0; i < array.Length; i++)
{
for (int k = i; k > 0 && array[k].KillScore > array[k - 1].KillScore; k--)
{
int score = array[k].KillScore;
string name = array[k].Name;
array[k] = array[k - 1];
array[k - 1].KillScore = score;
array[k - 1].Name = name;
}
}
}
не могли бы вы выставить исходное сообщение для игрока, пожалуйста? – Dutts
Пожалуйста, покажите код, в котором вы вызываете 'DumpListToArray' и' SortKillScores'. – Dai
Вы используете 'ref' или' out' где-нибудь? Или вы сохраняете сам объект в памяти? Нам нужна дополнительная информация. – Greg