我创建了一个存储在Array1中的sprite的可视网格。 其中一些精灵上面放了一个图像。 现在我想在空的网格元素上拖动另一个图像。 特殊情况: 放置几个图像同时被拖动。 因此,拖动容器还保存那些拖动图像的Array2。 只要鼠标上升,Array2的图像就应该放在Array1的空网格元素上。
我的问题:如何检查Array1的精灵是否被占用? 在拖动多个图像时,每个图像应放置在前一个图像元素下方(y轴向下)。在这个过程中,您可能会将图像放置在空的网格元素上,但由于多个图像放置在彼此之下,因此可以占用下一个网格元素,因此当前放置的图像应放置到下一个自由网格元素
答案 0 :(得分:0)
如果网格的第一个Sprite已经有一个图像,那么让我们在第i个地方创建一个布尔数组(让我们把它boolarr
)。true
。否则boolarr[i]
是false
。您应该将boolarr
存储在网格类中,并在每次添加图像时更改它。
所以,这是可能的解决方案。我们在i
处放置了几张图片。让我们找到下一个免费的spry
function getFreeSprites(n: int, i: position) {
var result = [];
while (result.length < n) {
if (!boolarr[i]) result.push(i);
i++;
}
return result;
}
函数返回的数组将包含下n个精灵sprite的索引,之后你可以将图像附加到它们。
希望有所帮助!