2

私はXNAを初めて使用し、現在、次のコードを使用して長方形を描画しています。

// Calculate particle intensity
intense = (int)((float)part.Life / PARTICLES_MAX_LIFE);
// Generate pen for the particle
pen = new Pen(Color.FromArgb(intense * m_Color.R , intense * m_Color.G, intense * m_Color.B));
// Draw particle
g.DrawRectangle(pen, part.Position.X, part.Position.Y, 
    Math.Max(1,8 * part.Life / PARTICLES_MAX_LIFE),
    Math.Max(1,8 * part.Life / PARTICLES_MAX_LIFE));
pen.Dispose();

オンラインで見つけた色で長方形を塗りつぶすすべての方法は、長方形を描く方法には当てはまらないようです。どうすれば色で塗りつぶすことができますか?

4

1 に答える 1

11

コードはXNAではなくGDI用に作成されている可能性が高いため、正しく機能していません。

ただし、XNAには非常に便利なRectangle構造が含まれています。

これは、画像を「ストレッチ」して長方形を塗りつぶすことができることを意味します。したがって、Texture2D1x1ピクセルの新しい画像を作成し、描画時にサイズを拡大してサイズを拡大します。(またはロードすることもできます)

Texture2D texture = new Texture2D(graphics, 1, 1, false, SurfaceFormat.Color);
texture.SetData<Color>(new Color[] { Color.White });
return texture;

この小さなテクスチャを、Rectangleベースのオーバーロードメソッドと組み合わせて使用​​できます。SpriteBatch

spriteBatch.Draw(texture, new Rectangle(X, Y, Width, Height), Color.White);

Width、、Height位置、色をお好みに合わせて変更してください。

于 2012-12-07T15:08:30.877 に答える