2011-03-27 3 views
0
내가 문자열 테이블로 조직화하는 2D 렌더링지도를 돌리겠다

에 조직적 렌더링 테이블을 변환, EG은 :Love2D 루아 프레임 워크 -지도 구조

", = {{이미지, 50,60 렌더링 2}} "

이미지는 이미지 (나는 Love2D 루아 프레임 워크를 사용하고 있습니다) (50)는 X 축 (60)이다

Y 축 2 이미지 ID (이 실제 테이블에있을 것입니다 무엇을이다 .)

그러나 이것들 (전부가 조직화되지 않은 재료들)이 100 개 있고, 그것들을 구조화 된 맵으로 oragnise해야합니다.

여기에 홀수 비트가 있습니다. 조직화 된 문자열로 변형하면 .. 킨다가 테이블을 90도 각도로 시계 반대 방향으로 회전시킵니다.

내가 얻을 것 내가

{ 
{7,6,5}, 
{6,5,4}, 
} 

의 결과를 원하는 말하는 : 분명히

{ 
{5,4}, 
{6,5}, 
{7,6}, 
} 

없는 오류를 기술적으로 작동하기 때문에, 단지 잘못 회전합니다. 관련 코드는 다음과 같습니다.

function OrganiseRenderIntoMap() 
    MapString = "" 

    Map2 = {} 
    MaxSoFarX = 0 
    MaxSoFarY = 0 
    for _,v in pairs(Render) do 
     if v[2] > MaxSoFarX then 
      MaxSoFarX = v[2] 
     elseif v[3] > MaxSoFarY then 
      MaxSoFarY = v[3] 
     end 
    end 

    for currx = 0, MaxSoFarX, 32 do 
     Map2[currx] = {} 
     MapString = MapString.."{" 
     for curry = 0, MaxSoFarY, 32 do 
      MapString = MapString..GetRenderPos(currx,curry).."," 
      Map2[currx][curry] = GetRenderPos(currx,curry) 
     end 
     MapString = MapString.."},\n" 
    end 

    return MapString 
end 


function GetRenderPos(locx,locy) 
    for _,v in pairs(Render) do 
     if v[2] == locx and v[3] == locy then 
      return v[4] 
     end 
    end 
end 
+0

관련없는 참고 사항 : 코드에서 많은 전역 변수를 사용합니다 (변수는 기본적으로 루아에서는 전역 변수입니다). 또한 독립 실행 형 루아 인터프리터에서 실제로 실행되도록 코드를 수정하면 대답하기가 더 쉽습니다. –

답변

2

LÖVE tile tutorial을 살펴보십시오. 섹션 1d-Strings은 "switched x and y"문제를 처리하는 방법에 대해 설명합니다.

+0

감사합니다. 나는 x 이전에 y를 통해 테이블에 저장된지도에 액세스하는 것을 깨달았어야합니다. 바보 나. –