0

形状は画像の上部にあります。

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 値は、図形の左上隅にあります。どんな助けでも大歓迎です。

4

1 に答える 1

0

コメントによると、width各形状のは実際には描画されるものの2倍です。したがって、あなたがしなければならないのは、すべての幅を合計し、その合計を2で割ることです。これにより、形状に必要な全幅が得られます。使用する画面の全幅からこれを引きます。これにより、使用可能なスペースの量がわかります。次に、それを形状の数から1を引いた数で割ります。これにより、各形状の右側に追加するスペースの量が得られます(おおよそ、正確に分割されないため、切り捨てるだけです)。したがって、各シェイプのオフセットは、前のシェイプのオフセットに、その幅の半分を加えたものに、先ほど計算した値を加えたものになります。Luaがわからないので、コーディングはあなたにお任せします。

于 2011-09-05T00:39:28.017 に答える