2012-03-16 4 views
0

저는 C#의 화면에 흩어진 나무들을 만드는 간단한 프로그램을 만들고 있습니다. 나는 아직도 C#에 대해 상대적으로 새로운 것이므로 나와 함께 곰을. 내 프로그램은 나무를 만들지 만 일부 이미지는 나무가 겉보기에 무작위 순서로 그려지기 때문에 서로 겹쳐집니다.가장 큰 것부터 작은 것까지 정수 목록을 정렬하는 방법

나는 나무 개체의 목록을 가지고 있는데, 나무의 Y 값 (treeObject.position.Y)으로이 목록을 정렬하는 방법을 궁금해했다. 루프가 가장 먼 뒤로 (가장 작은 Y) 먼저 그릴 것입니다. 하드 코딩을 시도했지만 너무 복잡했습니다.

전체 코드는 여기에 주어집니다 : http://pastebin.com/5G6aecLm

+0

XNA를 사용하는 코드도 추가 할 수 있습니다 ('정렬, XNA, C#'과 같은 키를 사용할 수 있습니다) 가장 멀리 시작하도록 루프를 변경할 수 있습니다. 또는 임의의 gen 임의의 nr이 특정 순서로 있는지 확인하려면 – GroundZero

답변

2

바람직하게는, 어떤 종류의 알고리즘을 사용하여 : QuickSort

0

당신이 3D 할 수있는 드로잉 엔진을 사용하는 경우, 그냥 세상의 정사보기를 사용합니다. 차이점은 없지만 z를 사용하여 깊이를 제어 할 수 있으며 (z = -y는 원하는 효과가 있음) 2D 스프라이트를 효율적으로 크기 조절, 회전 및 변형 할 수 있습니다. 나는이 문제를 이해하면

1

, 여기, 그것을 할 수있는 방법은 여러 가지가 하나가되어 있습니다

이 목록 유형 List<TreeObject>의 것을 가정하면 얻을 수있는

using System.Linq; 

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

그럼 그냥 루프 q는 당신의 올바른 순서로 개체를 만듭니다.

관련 문제