Как отсортировать список целых чисел от наибольшего к наименьшему - PullRequest
0 голосов
/ 16 марта 2012

Я строю простую программу, которая создает кучу разбросанных деревьев на экране в C #.Я все еще относительно новичок в C #, так что терпите меня.Моя программа создает деревья, но некоторые изображения оказываются друг над другом, потому что деревья нарисованы в случайном порядке.

У меня есть список объектов дерева, и мне было интересно, как можно сортировать этот список по значению Y деревьев (treeObject.position.Y), когда я вызываю методы рисования каждого дереваЦикл for сначала отрисовывает самые дальние спины (наименьший Y).Я пытался кодировать его жестко, но он стал слишком громоздким.

Полный код приведен здесь: http://pastebin.com/5G6aecLm

Ответы [ 3 ]

2 голосов
/ 16 марта 2012

Используя какой-либо алгоритм сортировки, предпочтительно: QuickSort

1 голос
/ 16 марта 2012

Если я понял вашу проблему, есть много способов сделать это, вот только один:

Предполагая, что ваш список имеет тип List<TreeObject>:

using System.Linq;

var q = yourList.AsEnumerable<TreeObject>().OrderBy(obj => obj.position.Y);

Тогда простоцикл q, чтобы получить ваши объекты в правильном порядке.

0 голосов
/ 16 марта 2012

Если вы используете движок рисования, способный к 3D, просто используйте орто-вид на мир. Вы не увидите никакой разницы, но вы сможете использовать z для контроля глубины (тогда z = -y даст желаемый эффект), а также сможете эффективно масштабировать, вращать и изменять ваши 2D-спрайты. 1001 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...