Framework LOVE2D LUA - Convertir une table de rendu non organisée en une structure de carte

StackOverflow https://stackoverflow.com/questions/5452457

  •  12-11-2019
  •  | 
  •  

Question

Je transforme une carte rendu 2D qui n'est pas organisée en table de cordes, par exemple de:

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

Où l'image est l'image (j'utilise le framework Love2D LUA) 50 est l'axe x 60 est l'axe Y 2 est l'ID d'image (c'est ce qui sera dans le tableau réel.)

Mais il y en a comme 100, tous non organisés et tout ça, et j'ai besoin de les oragniser dans une carte structurée.

Voici le bit impair: lorsque je le transforme en une chaîne organisée.

Dire que je veux le résultat de

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

J'obtiendrais:

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

De toute évidence, aucune erreur car elle fonctionne techniquement, tourne mal à tort. Voici le code pertinent:

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 
Était-ce utile?

La solution

Jetez un coup d'œil à mon Tutoriel de carreaux Löve. Section Strings 1D Je parle de la façon de gérer le problème "Switted X et Y".

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top