2009-06-14 2 views
1

XNAでゲームを作成するための一連のアプリケーションを開発しています。 Graphics.drawImageの使用XNAのtexture2Dオブジェクトからプレビュー画像を簡単に描画できます。C#Winformsのビットマップに複数の画像をレンダリングする

各オブジェクト、たとえばCharacter、Mapなどは、各部分に位置回転とテクスチャソースなどの情報を格納する部分のリストで構成されています。次のステップは、単なる部品ではなく、オブジェクト全体のプレビューをレンダリングすることです。

どうすればいいですか? Graphics.drawImageを通常のXNA描画呼び出しとして扱い、リストをループして各アイテムをビットマップに順番に描画することで、ビットマップにするオブジェクトのセクションをレンダリングできますか?または、各graphics.DrawImage呼び出しは描画するビットマップを破棄しますか?

+0

あなたが話すこのGraphics.DrawImageは何ですか? – RCIX

答えて

2

これはあなたが探しているものですか?

Bitmap bmp = new Bitmap(100, 100); 
    Graphics g = Graphics.FromImage(bmp); 
    g.DrawImage(Properties.Resources.Foo); 
    Bitmap bar = Properties.Resources.Bar; 
    bar.MakeTransparent(bar.GetPixel(0, 0)); 
    g.DrawImage(bar); 

限り、画像が(あなたがBitmap.MakeTransparent(への呼び出しを実行時に行うことができます))透明であるため、あなたは彼らがビットマップを「破壊」することなく、drawImageメソッドに複数の呼び出しで物事を階層化することができます。

0

右の音。私はTexture2D xnaオブジェクトのセットを持っています。それぞれのオブジェクトはファイルへのパスを格納しています。 Image.FromFile()を使用するこのパスを使用してImageオブジェクトを作成し、Graphics.DrawImage()とそのセクションを記述するRectangleをGraphicsオブジェクトに使用して、イメージのセクションを描画する必要があります。ここから、複数のg.DrawImage()呼び出しをBack to Frontオーダーで作成できます。

Texture2DとImageは透明性に対処でき、テクスチャのソースはすべてPNG形式ですから、Bitmapクラスの代わりにImageクラスを使用してMakeTransparent呼び出しを保存することができます。