2011-06-03 46 views
1

我創建了一個存儲在Array1中的精靈的可視網格。這些精靈中的一些有一個放置在它上面的圖像。 現在我想在空的網格元素上拖動另一張圖片。 特殊情況: 多個圖像被同時拖動放置。 因此,拖拽容器也包含這些拖動圖像的Array2。 只要鼠標上移,Array2的圖像應放置在Array1的空網格元素上。檢查佔用的網格元素

我的問題:如何檢查Array1的精靈是否被佔用? 雖然拖動了多個圖像,但每個圖像應放置在先前(y軸向下)以下一個網格元素。在這個過程中,可能發生的情況是將圖像放置在空的網格元素上,但是由於多個元素放置在彼此之下,下一個網格元素可能被佔用,因此當前放置的圖像應放置到下一個空閒網格元素。

回答

0

讓我們製作一個布爾數組(我們來計算它boolarr),如果第i個網格的第i個Sprite已經有圖像,則在第i個地方包含true。否則boolarr[i]false。您應該在網格類中存儲boolarr,並在每次添加圖像時更改它。

因此,這裏有可能的解決方案。我們放下了i的第幾個圖像。讓我們求n一個空閒spries

function getFreeSprites(n: int, i: position) { 
    var result = []; 
    while (result.length < n) { 
     if (!boolarr[i]) result.push(i); 
     i++; 
    } 

    return result; 
} 

陣列由函數返回將包含接下來的n自由精靈的索引,之後您可以將圖片給他們。

希望有幫助!