我正在写一个俄罗斯方块翻拍,我在显示我的块时遇到了一些问题。 所以基本上我将所有正方形(矩形)存储在二维数组中(例如[0,0]是col = 0,row = 0的矩形)并且我改变它们的可见性属性来显示/隐藏它们。我将要显示的块存储在List中。这是我的方法,它假设显示当前不移动的矩形(硬编码为4个矩形只是为了显示它是如何工作的):
public void DisplayStationary(List<int> stationaryBlocks)
{
rectangles[stationaryBlocks[0], stationaryBlocks[1]].Visibility = Visibility.Visible;
rectangles[stationaryBlocks[2], stationaryBlocks[3]].Visibility = Visibility.Visible;
rectangles[stationaryBlocks[4], stationaryBlocks[5]].Visibility = Visibility.Visible;
rectangles[stationaryBlocks[6], stationaryBlocks[7]].Visibility = Visibility.Visible;
}
当我只显示4个矩形(列表中的8个项目)时,这就是它的样子,但我希望它随着块列表的增长而动态变化。例如,要显示8个矩形,列表中将有16个项目,依此类推。
有关如何更改方法的任何提示?
答案 0 :(得分:1)
只需将此用于Display(List<int> blocks)
方法
for(var i = 0; i < stationaryBlocks.Count(); i=i+2;) {
// don't use i++ for "second" block as that is assignment and will mess up the loop
rectangles[blocks[i], blocks[i+1]].Visibility = Visibility.Visible;
}