C# 绘制矩形多维数组
我目前正在研究一个库存系统,但是我在想我应该如何绘制它时遇到了问题 我有一组矩形,看起来像这样:C# 绘制矩形多维数组,c#,xna,drawing,rectangles,inventory,C#,Xna,Drawing,Rectangles,Inventory,我目前正在研究一个库存系统,但是我在想我应该如何绘制它时遇到了问题 我有一组矩形,看起来像这样: Rectangle[] Inventoryslots = new Rectangle[24]; // 24 slots 现在我想画6*4列的槽,6个宽槽和4个高槽 我一直这样画,直到我弄明白如何在y上画: for (int i = 0; i < Inventoryslots.Length; i++) { Inventoryslots[i] = new Rectangle(
Rectangle[] Inventoryslots = new Rectangle[24]; // 24 slots
现在我想画6*4列的槽,6个宽槽和4个高槽
我一直这样画,直到我弄明白如何在y上画:
for (int i = 0; i < Inventoryslots.Length; i++)
{
Inventoryslots[i] = new Rectangle(i * 33, 0, box.Width, box.Height);
spriteBatch.Draw(box, Inventoryslots[i], Color.White);
}
for(int i=0;i
所以我想在[I]
达到6时向下移动y33,同时重置x位置
我相信这很简单,但我就是想不出来,所以任何帮助都可以节省我很多时间。首先从创建多维数组和常量开始
const int offset = 100;
Rectangle[,] Inventoryslots = new Rectangle[6, 4];
然后将使用双嵌套for循环进行初始化
for (int x = 0; x < 6; x++)
{
for (int y = 0; y < 4; y++)
{
Inventoryslots[x, y] = new Rectangle((x * Width) + offset,
(y * Height) + offset, Width, Height);
}
}
for(int x=0;x<6;x++)
{
对于(int y=0;y<4;y++)
{
库存槽[x,y]=新矩形((x*宽度)+偏移,
(y*高度)+偏移、宽度、高度);
}
}
然后,您将执行一个双嵌套for循环来迭代它们
for (int x = 0; x < 6; x++)
{
for (int y = 0; y < 4; y++)
{
spritebatch.draw(texture, Inventoryslots[x, y], Color.White);
}
}
for(int x=0;x<6;x++)
{
对于(int y=0;y<4;y++)
{
绘制(纹理,目录槽[x,y],颜色,白色);
}
}
至少我认为你是这么问的,让我知道这是怎么回事。该常数可用于移动整个矩形阵列(如果要单独操纵X和Y,请使用矢量2)基本上,X*33将是您在X上的位置,Y*33将是您在Y上的位置,如果您看不到方框,请尝试向其添加一个常数,例如:(X*33)+100感谢您的快速响应它工作得非常完美!我不知道这样做可以创建多维数组。再次感谢DSadly我不行,我需要15个代表我只有6个