異なる画像幅を考慮して、配列内のスペース画像を均等に出します

StackOverflow https://stackoverflow.com/questions/7302754

  •  22-10-2019
  •  | 
  •  

質問

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

誰かがそれがそうでない理由を説明でき、私を正しい方向に向けてくれるなら、私は感謝します。

ありがとう。

役に立ちましたか?

解決

削除する必要があります i = i + 1

数値には次の構文があります。

for var=exp1,exp2,exp3 do
  something
end

そのループは、EXP1からEXP2へのVARの各値に対して何かを実行し、EXP3をVARをインクリメントするステップとして使用します。この3番目の式はオプションです。不在の場合、Luaはステップ値として1つを想定します。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top