📅  最后修改于: 2023-12-03 15:08:43.188000             🧑  作者: Mango
在 Monogame 中,可以使用 SpriteBatch
类来绘制基础的图形。下面我们将介绍如何使用 SpriteBatch
绘制一个矩形。
RectangleRenderer.cs
。可以将这个类放在一个帮助类库中,以便在整个项目中重用。using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
namespace MyGame
{
public static class RectangleRenderer
{
public static void Draw(GraphicsDevice graphicsDevice, Rectangle rectangle, Color color)
{
Texture2D texture = new Texture2D(graphicsDevice, 1, 1);
texture.SetData(new[] { color });
SpriteBatch spriteBatch = new SpriteBatch(graphicsDevice);
spriteBatch.Begin();
spriteBatch.Draw(texture, rectangle, color);
spriteBatch.End();
}
}
}
解释:
Draw
方法接受以下三个参数:graphicsDevice
:用于绘制矩形的 GraphicsDevice
实例,通常可以从 Game
实例中获取。rectangle
:要绘制的矩形。color
:矩形的颜色。Draw
方法会创建一个单像素大小的 Texture2D
实例,并将它填充为指定的颜色。SpriteBatch
实例,并在 Begin
和 End
方法之间绘制矩形。SpriteBatch.Begin
和 SpriteBatch.End
之间调用 RectangleRenderer.Draw
方法即可。protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
Rectangle rectangle = new Rectangle(100, 100, 200, 100);
Color color = Color.Red;
RectangleRenderer.Draw(GraphicsDevice, rectangle, color);
base.Draw(gameTime);
}
解释:
Draw
方法中,首先清除画布为蓝色。SpriteBatch.Begin
和 SpriteBatch.End
之间调用 RectangleRenderer.Draw
方法,以便绘制矩形。使用 SpriteBatch
可以方便地在 Monogame 中绘制简单的图形,包括矩形。借助 RectangleRenderer
这样的帮助类,可以使代码更加清晰易懂,并可以在整个项目中重用。