2011/1/29 Na-7
 

技術資料一覧に戻る

 

テクスチャカラーを配列に格納する

注意 この資料は、筆者が自らの経験を記録したものであり、他人に勧めるものではありません。

この資料を参考として行った行為がいかなる結果になろうとも、筆者は責任を負いませんので予めご承知おきください。

 

◎目次

◎概要
◎使用ツール
◎サンプルコード
◎補足事項

 

 

◎概要

テクスチャカラーを配列に格納するサンプルコードを紹介する。

 

 

◎使用ツール

ツール名 入手元
XNA3.1(XNA GameStudio 3.1:ゲーム開発用フレームワーク) http://msdn.microsoft.com/ja-jp/xna/default.aspx

 

 

◎サンプルコード

// テクスチャカラーを二次元配列に格納する
private Color[,] textureColorTo2DArray(Texture2D texture)
{
   
Color[] color1D = new Color[texture.Width * texture.Height];
    texture.GetData(color1D);

   
Color[,] color2D = new Color[texture.Width, texture.Height];
   
for (int x = 0; x < texture.Width; x++)
       
for (int y = 0; y < texture.Height; y++)
            color2D[x, y] = color1D[x + y * texture.Width];

   
return color2D;
}

 

○呼び出し側のサンプルコード(LoadContent()などに記述する)

// テクスチャの宣言
Texture2D texture;

// テクスチャの呼び出し
texture = Content.Load<Texture2D>("test01");

// テクスチャカラーを二次元配列に格納する
Color[,] texCol;
texCol = textureColorTo2DArray(texture);

// カラーを確認
int x = 300;
int y = 300;
Console.WriteLine(texCol[x, y].ToString());

 

 

◎補足事項

・シンプルなコードなので、デバッグや変換ツール等で手軽に使いやすい。

・Texture2D.GetData()メソッドを使用しているので処理が遅く、本番ゲームには不向き。

 

inserted by FC2 system