проверить занятые элементы сетки - PullRequest
1 голос
/ 04 июня 2011

Я создал визуальную сетку спрайтов, которые хранятся в массиве Array1. Некоторые из этих спрайтов получили изображение. Теперь я хотел бы перетащить другое изображение на пустой элемент сетки. Особый случай: Несколько изображений перетаскиваются одновременно для размещения. Поэтому drag-контейнер содержит также Array2 из этих перетаскиваемых изображений. Как только мышь поднимется, изображения Array2 должны быть помещены в пустые элементы сетки Array1.

Мой вопрос: как мне проверить, занят спрайт Array1 или нет? В то время как несколько изображений были перетащены, каждое изображение должно быть размещено на один элемент сетки ниже предыдущего (ось Y вниз). В этом процессе может случиться так, что вы поместите изображение в пустой элемент сетки, но поскольку некоторые из них расположены друг над другом, следующий элемент сетки может быть занят, и поэтому текущее размещенное изображение должно быть помещено в следующий свободный элемент сетки. .

1 Ответ

0 голосов
/ 04 июня 2011

Давайте создадим логический массив (назовем его boolarr), содержащий true на i-м месте, если у i-го спрайта сетки уже есть изображение.в противном случае 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 бесплатных спрайтов, после чего вы можете прикрепить к ним изображения.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...