绘制矩形多维数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了绘制矩形多维数组相关的知识,希望对你有一定的参考价值。

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

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

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。

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

答案

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

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)

以上是关于绘制矩形多维数组的主要内容,如果未能解决你的问题,请参考以下文章

在回归任务中绘制多维真实和预测数组

Android使用ontouch在画布上绘制矩形

数组集合

如何在 UIView 上绘制一个 NSString 数组,它们之间没有任何前导空格并占据整个矩形?

如何在 PHP 中绘制渐变矩形? [关闭]

多维数组和 C# 中的数组数组有啥区别?