ble*_*erh 7 c# grid xna rectangles
我想将我的游戏网格划分为一个矩形阵列.每个矩形为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);
}
Run Code Online (Sandbox Code Playgroud)
我很确定这是有效的,但当然我无法确认它,因为矩形不会在屏幕上呈现让我亲眼看到它们.我想为调试目的做的是渲染边框,或用颜色填充矩形,这样我就可以在游戏本身上看到它,只是为了确保它有效.
有没有办法让这种情况发生?或者任何相对简单的方法我可以确保这个有效吗?
非常感谢你.
Cal*_*ers 24
首先,为矩形制作1x1像素的白色纹理:
var t = new Texture2D(GraphicsDevice, 1, 1);
t.SetData(new[] { Color.White });
Run Code Online (Sandbox Code Playgroud)
现在,您需要渲染矩形 - 假设调用了Rectangle rectangle.对于渲染填充块,它非常简单 - 确保将色调设置为Color您想要的颜色.只需使用此代码:
spriteBatch.Draw(t, rectangle, Color.Black);
Run Code Online (Sandbox Code Playgroud)
对于边界,它是否更复杂.你必须绘制构成轮廓的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
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
11320 次 |
| 最近记录: |