我目前正在开发库存系统,但是我在弄清楚应该如何绘制它时遇到问题。
我有一个矩形数组,如下所示:
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);
}
所以我想以某种方式将 y33 向下移动[i]
达到 6 并重置 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 循环来迭代它们
for (int x = 0; x < 6; x++)
{
for (int y = 0; y < 4; y++)
{
spritebatch.draw(texture, Inventoryslots[x, y], Color.White);
}
}
至少我认为这就是您所要求的,让我知道这是如何运作的。该常量可用于移动整个矩形数组(如果要单独操作 X 和 Y,请使用向量2)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)