Распределение изображений в массиве равномерно с учетом разной ширины изображения - PullRequest
0 голосов
/ 05 сентября 2011
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("offset: " .. xOffset)
        shapesPrevArray[i].x = xOffset    
        shapesPrevArray[i].y = 41
        shapesPrevArray[i].isVisible = true
        xOffset = 0

    end

    i = i + 1

end


i:2 width:60 x value:30 xoffset:90
i:3 width:40 x value:90 xoffset:130
i:4 width:50 x value:130 xoffset:180
i:5 width:70 x value:180 xoffset:250

Может кто-нибудь помочь мне, пожалуйста? Я не могу понять, почему этот бит не разделяет их.

xOffset = shapePrevArray [i - 1] .width + shapePrevArray [i - 1] .x

Если бы кто-то мог объяснить, почему это не так и указать мне правильное направление, я был бы благодарен.

Спасибо.

1 Ответ

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

Вы должны удалить i = i + 1

Числовое значение для имеет следующий синтаксис:

for var=exp1,exp2,exp3 do
  something
end

Этот цикл будет выполнять что-то для каждого значения переменной от exp1 до exp2используя exp3 в качестве шага для увеличения var.Это третье выражение не является обязательным;когда отсутствует, Lua принимает единицу в качестве значения шага.

http://www.lua.org/pil/4.3.4.html

...