2017-02-16 93 views
0

我正在編寫俄羅斯方塊重製,並且在顯示我的塊時遇到了一些問題。 所以基本上我把所有的方塊(矩形)存儲在二維數組中(例如[0,0]是col = 0中的矩形,row = 0),我將它們的visibility屬性更改爲顯示/隱藏它們。我將要顯示的塊存儲在列表中。這裏是我的方法,假設,顯示未在目前移動矩形(硬編碼爲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個項目,依此類推。

任何提示我應該如何改變我的方法?

回答

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; 
} 
+0

太感謝你了,它的工作原理!那麼這是非常明顯的解決方案,我只是完全列出了新的 – Heisenberker

相關問題