在C#中绘制一个矩形

时间:2017-07-13 16:06:43

标签: c# .net visual-studio xna

这是一个非常简单的问题,但我无法在互联网上找到任何有用的信息。基本上,我试图绘制一个矩形,但是当我启动我的代码时,没有任何事情发生(我也没有任何错误)。这是代码:

class Buildings
{

    public void test(Game1 mainGame, SpriteBatch spriteBatch)
    {
        var buildingrect = new Rectangle(mainGame.bufferHeight - 30, 50, 200, 50);
        // (Note: mainGame.alien2 is a texture I have - this isn't the problem) 
        spriteBatch.Draw(mainGame.alien2, buildingrect, Color.White);
    }
}

public class Game1 : Microsoft.Xna.Framework.Game
{
    protected override void Draw(GameTime gameTime)
    {
        buildings.test(this, spriteBatch);
    }
}

感谢您的帮助,我再次道歉,因为这是一个简单的问题 - 我还是初学者。

1 个答案:

答案 0 :(得分:0)

不幸的是,你不能像那样画简单的矩形。你可以这样解决:

创建一个纹理,用于保存矩形

的像素颜色

private Texture2D pixel; private Rectangle rect; //your rectangle

使用您喜欢的颜色初始化它:

pixel = new Texture2D(GraphicsDevice, 1, 1); pixel.SetData(new[] { Color.White });

在你的绘画方法中,你现在绘制矩形的每一边:

int bw = 2; // Border width //Left spriteBatch.Draw(pixel, new Rectangle(rect.Left, rect.Top, bw, rect.Height), Color.Black); //Right spriteBatch.Draw(pixel, new Rectangle(rect.Right, rect.Top, bw, rect.Height), Color.Black); //Top spriteBatch.Draw(pixel, new Rectangle(rect.Left, rect.Top, rect.Width, bw), Color.Black); //Bottom spriteBatch.Draw(pixel, new Rectangle(rect.Left, rect.Bottom, rect.Width, bw), Color.Black);