2012-03-16 13 views
0

私は、C#のスクリーンに散らばった木々を作成する簡単なプログラムを構築しています。私はまだC#の比較的新しいですので、私と一緒に熊。私のプログラムはツリーを作成しますが、いくつかのイメージは、一見無作為な順序でツリーが描画されるため、お互いの上に終わります。整数のリストを最小から最小まで並べ替える方法

私はツリーオブジェクトのリストを持っていますが、ツリーのY値(treeObject.position.Y)でこのリストをソートする方法が不思議でした。ループすると、一番遠いもの(最小のY)が最初に描画されます。私はそれをコーディングしてみましたが、あまりにも面倒でした。

完全なコードはここに与えられます。 http://pastebin.com/5G6aecLm

+0

XNAを使用しているコードを追加することもできます(「ソート、XNA、C#」のようなキーを使用できます) ループを最も遠くから変更したり、ランダムな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があなたを取得しますオブジェクトを正しい順序で返します。

関連する問題