将阵列中的图像均匀分布,考虑到不同的图像宽度

时间:2011-09-04 23:27:27

标签: arrays image lua spacing

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 = shapesPrevArray [i - 1] .width + shapesPrevArray [i - 1] .x

如果有人可以解释为什么不是,并指出我正确的方向,我将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:1)

您应该删除i = i + 1

  

数字for具有以下语法:

for var=exp1,exp2,exp3 do
  something
end
     

该循环将为exp1中的每个var值执行一些操作   exp2,使用exp3作为增加var的步骤。这第三个表达   是可选的;当缺席时,Lua将其中一个作为步长值。

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