http://xnaresources.com/default.asp?page=Tutorial:TileEngineSeries:1
そのリンクを使用すると、タイルエンジンを作成する必要があります何のほとんどをカバーしてチュートリアルを提供します。
アプリケーションの初期化機能内にタイルを作成しているようです。必要なすべてのタイルを格納するタイルマネージャーを作成する方がよいでしょう。
タイルの作成に関しては、構造体の配列または構造体の配列を使用できます。最初のものについては、少なくともタイルの位置を格納するTileクラスを作成します。スプライトシートを使用してタイルをレンダリングする場合は、描画に使用するタイルを決定するためにTileIDを含めることもできます。
構造体の配列の場合、(Tile Manager内の)タイルに使用されるベクターの配列と、TileIDの別の配列を格納できます。両方の方法が機能します。わかりやすく、オブジェクト指向プログラミングを練習するためには、おそらく最初の方をお勧めします。
Texture2Dも一度だけ読み込む必要があります。ローディングを行う場所やタイルを作成する方法を投稿しないので、それぞれのタイルのtexture2Dを読み込む計画があると仮定しています。これは悪い考えです。
最後に、あなたはあなたのタイルクラスが作られたら、ループの観点から、あなたのタイルマネージャまたは貫通ループは各タイルの位置を作成して設定します機能を初期化する(擬似コード)で:次に
int tileRowCount = mapSizeX/tileSizeX;
int tileColumnCount = mapSizeY/tileSizeY;
for(int rowIndex = 0; rowIndex < tileRowCount; rowIndex++)
{
for(int columnIndex = 0; columnIndex < tileColumnCount; columnIndex++)
{
tileList.Add(new Tile(new Vector2(columnIndex * tileSizeX, rowIndex * tileSizeY);
}
}
用図:
foreach(Tile tile in tileList)
{
///not exact Draw call, not looking at the documents right now
tile.Draw(spriteBatch, tileTexture, tile.Position);
}
これは私があなたの後ろにいると思うものの要点です。私が間違った道を歩いているなら、私は答えを適応させることを教えてください。私はいくつかのより詳細な内容を読み飛ばしましたが、問題がある場合はリンクがあり、さらに質問することができます。
EDITED:描画部分がコード形式ではありません