Изображения в массиве, неправильно расставлены - PullRequest
0 голосов
/ 05 сентября 2011

Формы вверху изображения.

http://picturepush.com/public/6472916

Код выглядит так:

    local xOffset = 0

    for i = 1, levelPacks[prevCurrentLevelPack][prevCurrentLevel].ammount do

        if i == 1 then --setup first one

            shapesPrevArray[i].x = 30
            shapesPrevArray[i].y = 41
            shapesPrevArray[i].isVisible = true

        end

        if i > 1 then --setup the rest

            --width of previous one plus the x value of the previous one to make them next to eachother.
            xOffset = shapesPrevArray[i - 1].width + shapesPrevArray[i - 1].x
            print("i:" .. i .. " width:" .. shapesPrevArray[i - 1].width .. " x value:" .. shapesPrevArray[i - 1].x .." xoffset:" .. xOffset)
            shapesPrevArray[i].x = xOffset    
            shapesPrevArray[i].y = 41
            shapesPrevArray[i].isVisible = true
            xOffset = 0

        end

    end

Я пытаюсь разместить все изображения в массиве с одинаковым пространством между каждым изображением. Изображения в массиве имеют разную ширину. Значение .x находится в верхнем левом углу фигуры. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 05 сентября 2011

Согласно комментарию, width каждой фигуры на самом деле вдвое больше, чем она будет нарисована. Так что вам нужно сложить все ширины и разделить сумму на 2; это дает вам полную ширину, необходимую фигурам. Вычтите это из общей ширины на экране, который вы хотите взять; это дает вам количество свободного места. Затем разделите это на количество фигур, минус один; это дает вам количество пространства, которое нужно добавить справа от каждой фигуры (приблизительно, так как оно, вероятно, не будет делиться точно; Таким образом, смещение каждой фигуры - это смещение предыдущей фигуры, плюс половина ее ширины плюс значение, которое мы только что рассчитали. Я не знаю Луа, поэтому я оставлю вам кодировку.

...