我想将我的游戏网格划分为一个矩形数组。每个矩形是 40x40,每列有 14 个矩形,总共 25 列。这涵盖了 560x1000 的游戏区域。
这是我设置的用于在游戏网格上制作第一列矩形的代码:
Rectangle[] gameTiles = new Rectangle[15];
for (int i = 0; i <= 15; i++)
{
gameTiles[i] = new Rectangle(0, i * 40, 40, 40);
}
我很确定这行得通,但当然我无法确认它,因为矩形不会呈现在屏幕上以供我实际看到它们。为了调试目的,我想做的是渲染一个边框,或者用颜色填充矩形,这样我就可以在游戏本身上看到它,只是为了确保它能正常工作。
有什么办法可以做到这一点吗?或者我可以通过任何相对简单的方法来确保它有效?
非常感谢。
最佳答案
首先,为矩形制作一个 1x1 像素的白色纹理:
var t = new Texture2D(GraphicsDevice, 1, 1);
t.SetData(new[] { Color.White });
现在,您需要渲染矩形 - 假设矩形名为 rectangle
。要渲染填充 block ,非常简单 - 确保将色调 Color
设置为您想要的颜色。只需使用此代码:
spriteBatch.Draw(t, rectangle, Color.Black);
对于边框,是不是比较复杂。你必须绘制构成轮廓的 4 条线(这里的矩形是 r
):
int bw = 2; // Border width
spriteBatch.Draw(t, new Rectangle(r.Left, r.Top, bw, r.Height), Color.Black); // Left
spriteBatch.Draw(t, new Rectangle(r.Right, r.Top, bw, r.Height), Color.Black); // Right
spriteBatch.Draw(t, new Rectangle(r.Left, r.Top, r.Width , bw), Color.Black); // Top
spriteBatch.Draw(t, new Rectangle(r.Left, r.Bottom, r.Width, bw), Color.Black); // Bottom
希望对您有所帮助!
关于c# - 使用 XNA 在游戏窗口中显示矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2795741/