2011-09-05 4 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로 나누는 것입니다. 이것은 셰이프에 필요한 너비를 제공합니다. 당신이 차지하려고하는 화면의 전체 너비에서 이것을 뺍니다. 이것은 사용 가능한 공간의 양을 제공합니다. 그런 다음 모양의 수를 1을 뺀 값으로 나눕니다. 이것은 각 도형의 오른쪽에 추가 할 공간의 양을 제공합니다 (정확히 나누기 때문에 대략 반올림합니다). 각 셰이프의 오프셋은 이전 셰이프의 오프셋과 너비의 절반에 방금 계산 한 값을 더한 값입니다. 나는 루아를 모른다. 그래서 나는 당신에게 코딩을 맡길 것이다.

+0

작은 이미지가 큰 이미지 옆에 약간 띄엄 띄엄 거리지 만 완벽하게 작동합니다. http://picturepush.com/public/6472963 어쨌든 그 라운드를 얻을 수 있습니까? 다시 한번 고마워, 루이스. –

+0

@Lewis Elliott : 실제로 이것은 약간 떨어져 있습니다. 20 (갭 41) 25 (갭 44) 35 (갭 29) 15. 검토 할 수 있도록 이전 코드를 유지하면서 새 코드를 추가하는 것이 좋습니다. –

+0

루아에서 나에게 이야기 한 내용을 업로드했고 사람들이 도형의 출처를 볼 수 있도록 간단하게 만들었습니다. 감사합니다. http://stackoverflow.com/questions/7309452/spacing-images-in-an-array-out-accurately-with-even-spaces-between-each-image –