gpt4 book ai didi

c# - 使用 SpriteBatch 在 XNA 中绘制矩形

转载 作者:可可西里 更新时间:2023-11-01 03:11:47 25 4
gpt4 key购买 nike

我正在尝试使用 spritebatch 在 XNA 中绘制一个矩形。我有以下代码:

        Texture2D rect = new Texture2D(graphics.GraphicsDevice, 80, 30);
Vector2 coor = new Vector2(10, 20);
spriteBatch.Draw(rect, coor, Color.Chocolate);

但由于某种原因它没有绘制任何东西。知道出了什么问题吗?谢谢!

最佳答案

这是您可以放入从 Game 派生的类中的代码。这演示了在何处以及如何创建一个白色的 1 像素正方形纹理(以及完成后如何处理它)。以及如何在绘制时缩放和着色该纹理。

对于绘制纯色矩形,此方法比创建所需大小的纹理本身更可取。

SpriteBatch spriteBatch;
Texture2D whiteRectangle;

protected override void LoadContent()
{
base.LoadContent();
spriteBatch = new SpriteBatch(GraphicsDevice);
// Create a 1px square rectangle texture that will be scaled to the
// desired size and tinted the desired color at draw time
whiteRectangle = new Texture2D(GraphicsDevice, 1, 1);
whiteRectangle.SetData(new[] { Color.White });
}

protected override void UnloadContent()
{
base.UnloadContent();
spriteBatch.Dispose();
// If you are creating your texture (instead of loading it with
// Content.Load) then you must Dispose of it
whiteRectangle.Dispose();
}

protected override void Draw(GameTime gameTime)
{
base.Draw(gameTime);
GraphicsDevice.Clear(Color.White);
spriteBatch.Begin();

// Option One (if you have integer size and coordinates)
spriteBatch.Draw(whiteRectangle, new Rectangle(10, 20, 80, 30),
Color.Chocolate);

// Option Two (if you have floating-point coordinates)
spriteBatch.Draw(whiteRectangle, new Vector2(10f, 20f), null,
Color.Chocolate, 0f, Vector2.Zero, new Vector2(80f, 30f),
SpriteEffects.None, 0f);

spriteBatch.End();
}

关于c# - 使用 SpriteBatch 在 XNA 中绘制矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5751732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com