Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 绘制矩形多维数组_C#_Xna_Drawing_Rectangles_Inventory - Fatal编程技术网

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个