Framework LOVE2D LUA - Convertir une table de rendu non organisée en une structure de carte
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
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".