填充2D矩形

时间:2012-12-07 14:38:25

标签: c# xna 2d draw

我是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();

用网上找到的颜色填充矩形的所有方法似乎都不适用于我绘制矩形的方式。我怎样才能用颜色填充它?

1 个答案:

答案 0 :(得分:10)

您的代码似乎最有可能是针对GDI而非XNA,因此无法正常运行。

但是,XNA包含一个非常有用的Rectangle结构。

这意味着您可以“拉伸”图像以填充矩形,因此创建一个1x1像素的新Texture2D,并在绘制时拉伸尺寸以增加尺寸..(或者您可以加载一个)

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

您可以将此小纹理与SpriteBatch

Rectangle based overload方法结合使用
spriteBatch.Draw(texture, new Rectangle(X, Y, Width, Height), Color.White);

根据您的喜好更改WidthHeight,位置和颜色。