Платформа Love2D Lua - преобразование неорганизованной таблицы рендеринга в структуру карты - PullRequest
0 голосов
/ 28 марта 2011

Я превращаю 2D-карту, которая неорганизована, в таблицу строк, например, из:

"Render = {{Image, 50,60,2}}"

Где Image - изображение (я использую фреймворк Love2D Lua) 50 - это ось X 60 - ось Y 2 - это идентификатор изображения (это то, что будет в реальной таблице.)

Но их примерно 100, все неорганизованные и тому подобное, и мне нужно объединить их в структурированную карту.

Вот странный бит: когда я превращаю его в организованную строку ... Это ... Кинда поворачивает стол на угол 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 

1 Ответ

2 голосов
/ 28 марта 2011

Посмотрите на мой учебник плитки LÖVE . В разделе 1d-Strings рассказывается о том, как справиться с проблемой "Switched X and Y".

...