【发布时间】:2014-07-27 15:45:30
【问题描述】:
所以这是我的问题:
我有一个 RPG 库存,它通过两个 for 循环在网格 (7x4) 中绘制项目:
[Update Method]
index = 0;
for (int x = 0; x < 7; x++)
{
for (int y = 0; y < ItemList.Count / 7; y++)
{
ItemList[index].gridLocation = new Point(x, y);
index++;
}
}
*ItemList 只是 BaseItem 类的列表。
这就是我希望这段代码绘制网格的方式:
X X X X X X X
X X X X X X X
X X X X X X X
X X X X X
但这就是它的做法:
X X X X X X X
X X X X X X X
X X X X X X X
将不大于等于 7 的最后一行截掉。
现在,当我使用一个项目时(使用一个项目将其从列表中删除),它会将下一个隐藏项目添加到第三行的末尾。
如果有任何帮助,我将不胜感激。 谢谢,
编辑:感谢 Nico 的帮助,这就是我的代码现在的样子:
if (ItemList.Count > 6)
{
for (int index = 0; index < ItemList.Count; ++index)
{
ItemList[index].gridLocation = new Point(index % 7, (int)(index / 7));
ItemList[index].UpdateValues(ScreenLocation, itemSize, LocY);
}
}
else if (ItemList.Count < 7)
{
for (int index = 0; index < ItemList.Count; ++index)
{
ItemList[index].gridLocation = new Point(index, 0);
ItemList[index].UpdateValues(ScreenLocation, itemSize, LocY);
}
}
我发现有一个问题,如果 itemList 低于 7,它不会显示任何项目。上面的代码修复了它。再次感谢!
【问题讨论】: