2011-09-05 81 views
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值位於形狀的左上角。任何幫助,將不勝感激。

+0

它看起來像這個代碼將把形狀放在彼此相鄰,沒有他們之間的空間。截圖中不是這種情況。每個形狀只是白色的部分,還是它還包括一些黑色? –

+0

嘿謝謝你的回覆,形狀不是圖像文件,它們是通過設置寬度和高度值定義的矩形。然後我放下一半。所以不應該有任何黑色! –

+0

要麼是這樣,要麼是.width沒有正確初始化... – Colin

回答

0

根據評論,每個形狀的width實際上是其繪製的兩倍。所以你要做的就是把所有的寬度加起來,並把總和除以2;這給你的形狀所需的總寬度。從您想要佔用的屏幕上的總寬度中減去此值;這給你可用的空間量。然後除以形狀的數量減去一。這給了你在每個形狀右邊添加的空間量(大概,因爲它可能不會完全分開;只是向下)。因此,每個形狀的偏移量都是前一個形狀的偏移量加上其一半寬度加上我們剛剛計算的值。我不認識Lua,所以我會把編碼留給你。

+0

感謝你的支持,它完美地工作,儘管當一個較小的圖像靠近一個較大的圖像時,它會使間距微小化。 http://picturepush.com/public/6472963有無論如何得到這個?再次感謝劉易斯。 –

+0

@Lewis Elliott:這實際上有點不合適;我測量這些像素數量:20(空白41)25(空白44)35(空白29)15.我建議你將新的代碼添加到問題中(同時保留舊代碼),以便可以查看它。 –

+0

我已經上傳了你在Lua中告訴我的內容,並且使它更簡單,以便人們可以看到形狀來自哪裏。謝謝http://stackoverflow.com/questions/7309452/spacing-images-in-an-array-out-accurately-with-even-spaces-between-each-image –