SewiGの日記
2006-06-18 [日] [長年日記]
■ [Programming][C#] C#で2D Programming on Direct3D (3)
今度はスプライトを使用した例。Microsoft.DirectX.Direct3D.Spriteです。スプライトを使用すれば、頂点情報を利用することなく、テクスチャと座標から2次元サーフェイスに画像を描画できます。
→ ソースコード (csmdx_sprt.zip, 2006/06/20 微修正)
スプライトオブジェクトを生成。
Sprite sprite = new Sprite(device);
これだけ。
あとは、device.BeginScene()のあとでスプライトを描画。
sprite.Begin(SpriteFlags.AlphaBlend); sprite.Draw2D(texture, center, 0, new Point(x, y), Color.FromArgb(0xFF, 0xFF, 0xFF, 0xFF)); sprite.End();
スプライトも、3Dに似たようなBeginとEndがあって、この間で描画していきます。Draw2Dの第1引数はテクスチャ、第4引数は描画する座標、第5引数はスプライトの透過色。第2、3引数は回転に関するものです。無駄に多機能w 第2引数は回転軸の座標、第3引数は回転角度(ラジアン)を指定します。回転しない場合は0ですね。
2D描画はこんな感じですかね。間違ってもテクスチャを秒間何フレームも書き換えないでください。テクスチャの張替えはコストが掛かります。実際fpsも出ません。