检查占用的网格元素

发布于 2024-11-14 08:10:37 字数 314 浏览 1 评论 0原文

我创建了一个精灵的视觉网格,它们存储在 Array1 中。 其中一些精灵上面放置了图像。 现在我想将另一个图像拖动到空网格元素上。 特例: 同时拖动多个图像进行放置。 因此,拖动容器还保存这些拖动图像的 Array2。 一旦鼠标抬起,Array2 的图像就应该放置在 Array1 的空网格元素上。

我的问题:如何检查Array1的精灵是否被占用? 当拖动多个图像时,每个图像都应放置在前一个图像下方的一个网格元素(y 轴向下)。在此过程中,可能会发生将图像放置在空网格元素上的情况,但由于多个图像彼此放置在彼此下方,因此下一个网格元素可能会被占用,因此当前放置的图像应放置到下一个空闲网格元素中。

I created a visual grid of sprites which are stored in an Array1.
Some of those sprites got an image placed on it.
Now I would like to drag another image on an empty grid-element.
Special case:
Several images are dragged at the same time for being placed.
Therefore a drag-container holds also an Array2 of those dragged images.
As soon as the mouse goes up, the images of Array2 should be placed on empty grid elements of Array1.

My question: How do I check if a sprite of Array1 is occupied or not?
While several images have been dragged, every image should be placed one grid-element below the previous(y-axis down). In this process it could happen that you place an image on an empty grid-element, but because several are placed below each other the next grid-element could be occupied and therefore the currently placed image should be placed to the next free grid-element.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

假扮的天使 2024-11-21 08:10:37

让我们创建一个布尔数组(我们将其称为 boolarr),如果网格的第 i 个 Sprite 已经有图像,则在第 i 个位置包含 true。否则,boolarr[i] 为 false。您应该将 boolarr 存储在网格类中,并在每次添加图像时更改它。

所以,这是可能的解决方案。我们在第 i 个位置放置了几张图像。让我们找到

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

    return result;
}

函数返回的 n 个下一个空闲精灵数组,该数组将包含下一个 n 个空闲精灵的索引,之后您可以将图像附加到它们上。

希望有帮助!

Let's make a boolean array (let's cal it boolarr), containing true on i-th place if i-th Sprite of a grid already has an image. otherwise boolarr[i] is false. You should store boolarr in grid class, and change it each time images are added.

So, here's possible solution. We drop several images on i-th place. Let's find n next free spries

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

    return result;
}

array returned by the function will contain indexes of next n free sprites, after that you can attach images to them.

Hope that helps!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文