绘制矩形多维数组

问题描述 投票:2回答:1

我目前正在研究库存系统,但是我在弄清楚应该如何绘制它时遇到了问题。

我有一个看起来像这样的矩形数组:

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);
}

因此,当[i]达到6并且还重置x位置时,我想以某种方式移动y33。

我确信这很简单,但我无法弄清楚,所以任何帮助都会节省我很多时间。

c# xna drawing rectangles inventory
1个回答
2
投票

首先创建一个多维数组和常量

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循环来迭代它们

for (int x = 0; x < 6; x++)
{
    for (int y = 0; y < 4; y++)
    {
       spritebatch.draw(texture, Inventoryslots[x, y], Color.White); 
    }
}

至少我认为这就是你要问的,让我知道它是如何工作的。常量可用于移动整个矩形数组(如果要单独操作X和Y,请使用vector2)

© www.soinside.com 2019 - 2024. All rights reserved.