将空间图像均匀地排列在数组中,考虑到不同图像的宽度。

local xOffset = 0

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

    if i == 1 then -- 设置第一个形状

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

    end

    if i > 1 then -- 设置其余的形状

        -- 将前一个形状的宽度加上前一个形状的x值,使它们紧挨在一起
        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

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

谢谢。

原文链接 https://stackoverflow.com/questions/7302754

点赞
stackoverflow用户115325
stackoverflow用户115325

你应该移除 i = i + 1

数值for循环具有以下语法:

for var=exp1,exp2,exp3 do
  something
end

该循环将对varexp1exp2的每个值执行something,使用exp3作为增加var的步骤。如果忽略第三个表达式,Lua将假定步骤值为1(即按照默认值)。

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

2011-09-04 23:34:19