这是一个非常简单的问题,但我无法在互联网上找到任何有用的信息。基本上,我试图绘制一个矩形,但是当我启动我的代码时,没有任何事情发生(我也没有任何错误)。这是代码:
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);
}
}
感谢您的帮助,我再次道歉,因为这是一个简单的问题 - 我还是初学者。
答案 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);