µLua DS - Forum officiel | Official forum Index du Forum

µLua DS - Forum officiel | Official forum
Le bon endroit pour en savoir plus sur MicroLua et pour parler de vos projets ! | The right place to learn more about MicroLua and talk about your projects !

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer   ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Comment convertir une map en table ?
Aller à la page: 1, 2  >
 
Poster un nouveau sujet   Répondre au sujet    µLua DS - Forum officiel | Official forum Index du Forum -> Section française -> Demande d'aide
Sujet précédent :: Sujet suivant  
Auteur Message
spectrenoir06


Hors ligne

Inscrit le: 13 Jan 2012
Messages: 184
Localisation: Paris

MessagePosté le: Lun 27 Fév 2012 - 22:37    Sujet du message: Comment convertir une map en table ? Répondre en citant

Comment convertir une map en table ?



voila je voudrait pouvoir convertir une map en tableau


en gros au lieu de faire un ScrollMap.setTile(map,x,y) = .....

j'aurait un map.x.y= .....


le programme lit le .map et le stocke dans une table


Revenir en haut
Visiter le site web du posteur
Publicité






MessagePosté le: Lun 27 Fév 2012 - 22:37    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Lolman
Modérateur

Hors ligne

Inscrit le: 02 Aoû 2011
Messages: 811

MessagePosté le: Lun 27 Fév 2012 - 23:02    Sujet du message: Comment convertir une map en table ? Répondre en citant

Pourquoi est-ce que tu veux faire ça ? Pour écrire moins ?
Faut regarder comment est fait map. En fait, c'est déjà une table, mais elle n'est pas structuré comme tu l'as écrit.
Tous les objets sont des tables en Lua.
_________________
http://bit.ly/u5x6DZ Fangame et suite du célèbre Metroid Prime 3.
Corvées : header fofo, Homebreware, µPy, new µLib, modes d'emploi, MLS sur DeSmuME, rotation écran, tuto wiki, domination de la Galak-sy.


Revenir en haut
Visiter le site web du posteur
spectrenoir06


Hors ligne

Inscrit le: 13 Jan 2012
Messages: 184
Localisation: Paris

MessagePosté le: Mar 28 Fév 2012 - 00:14    Sujet du message: Comment convertir une map en table ? Répondre en citant

jeu veut faire un fonction similaire a ScrollMap mais en isometrique
c'est pour lire la map


Revenir en haut
Visiter le site web du posteur
Lolman
Modérateur

Hors ligne

Inscrit le: 02 Aoû 2011
Messages: 811

MessagePosté le: Mar 28 Fév 2012 - 10:08    Sujet du message: Comment convertir une map en table ? Répondre en citant

Je te conseille de faire une table de ce genre :
Code:
isoMap {
   { x y tile }
}

Tu fais ça avec une boucle, évidemment.
Et tu crées une fonction draw qui parcourt toute la isoMap et qui pour chaque triplet dessine LeSpriteQuiContientLesTilesDeLaMap[tile] à x;y.
_________________
http://bit.ly/u5x6DZ Fangame et suite du célèbre Metroid Prime 3.
Corvées : header fofo, Homebreware, µPy, new µLib, modes d'emploi, MLS sur DeSmuME, rotation écran, tuto wiki, domination de la Galak-sy.


Revenir en haut
Visiter le site web du posteur
Reylak
Administrateur

Hors ligne

Inscrit le: 24 Nov 2008
Messages: 2 838
Localisation: Toulouse

MessagePosté le: Mar 28 Fév 2012 - 18:47    Sujet du message: Comment convertir une map en table ? Répondre en citant

Y a rien de bien compliqué à parser un fichier rempli de nombres séparés par des pipes :-|
(non je peux pas le sortir instantanément, mais avec la doc Lua sous le nez ça passe)
_________________


Plein d'infos sur le SourceForge !


Revenir en haut
Visiter le site web du posteur MSN Skype
Fantasix
Modérateur

Hors ligne

Inscrit le: 26 Avr 2010
Messages: 1 317
Localisation: SCREEN_UP, en -1, -1

MessagePosté le: Mar 28 Fév 2012 - 19:23    Sujet du message: Comment convertir une map en table ? Répondre en citant

Renseigne toi sur les io, puis sur la façon de découper les chaines de caractères, et voilà !

Comme dit Reylak, avec la doc Lua, ça va tout seul.

Fanta'
_________________


BMA News :

Création du Homebrew Storage en cours ...


Revenir en haut
Visiter le site web du posteur
spectrenoir06


Hors ligne

Inscrit le: 13 Jan 2012
Messages: 184
Localisation: Paris

MessagePosté le: Mar 28 Fév 2012 - 22:07    Sujet du message: Comment convertir une map en table ? Répondre en citant

Shocked    j'ai la doc lua 5.1 la doc micro lua 4.1 pas moyen de trouver j'ai juste trouver comment lire un fichier



io.open(map.map, r)


je suis vraiment une merde ou je cherche pas au bon endroit ?


Revenir en haut
Visiter le site web du posteur
Reylak
Administrateur

Hors ligne

Inscrit le: 24 Nov 2008
Messages: 2 838
Localisation: Toulouse

MessagePosté le: Mar 28 Fév 2012 - 22:18    Sujet du message: Comment convertir une map en table ? Répondre en citant

Cherche string.gsub() et tout ce qui va avec (je crois que c'est ça le nom).
_________________


Plein d'infos sur le SourceForge !


Revenir en haut
Visiter le site web du posteur MSN Skype
spectrenoir06


Hors ligne

Inscrit le: 13 Jan 2012
Messages: 184
Localisation: Paris

MessagePosté le: Mar 28 Fév 2012 - 23:40    Sujet du message: Comment convertir une map en table ? Répondre en citant

bon avec sa 
Code:


 f = io.open( "iso.map", "r" )
map = {}
for line in f:lines() do
    print (line)
end


j'obtiens chaque ligne du fichier

maintenant comment séparer les nombres


exemple:
 3| 1| 1| 1| 1


Revenir en haut
Visiter le site web du posteur
Fantasix
Modérateur

Hors ligne

Inscrit le: 26 Avr 2010
Messages: 1 317
Localisation: SCREEN_UP, en -1, -1

MessagePosté le: Mer 29 Fév 2012 - 00:01    Sujet du message: Comment convertir une map en table ? Répondre en citant

.sub ou .gsub comme l'as si bien dit Reylak.

Le User-Wiki est vachement bien expliqué et simple à comprendre, si jamais.

Fanta'
_________________


BMA News :

Création du Homebrew Storage en cours ...


Revenir en haut
Visiter le site web du posteur
spectrenoir06


Hors ligne

Inscrit le: 13 Jan 2012
Messages: 184
Localisation: Paris

MessagePosté le: Mer 29 Fév 2012 - 01:17    Sujet du message: Comment convertir une map en table ? Répondre en citant

bon avec sa je peut deja récupérer le numéro que je veux dans chaque ligne
Code:

 f = io.open( "iso.map", "r" )
map = {}
for line in f:lines() do
    print (string.sub(line, 1, 2)) --premier nombre
    print (string.sub(line, 4, 5))
    print (string.sub(line, 7, 8))
    print (string.sub(line, 10, 11))
    print (string.sub(line, 13, 14))
    print ("           ")
end

maintenant faut que je les stocke dans un tableau

Revenir en haut
Visiter le site web du posteur
Lolman
Modérateur

Hors ligne

Inscrit le: 02 Aoû 2011
Messages: 811

MessagePosté le: Mer 29 Fév 2012 - 01:27    Sujet du message: Comment convertir une map en table ? Répondre en citant

Au lieu de faire print tu fais map[...] = uneFonctionQuiConvertitDesStringsEnInt(string.sub(...)) pour stocker dans ta map.
_________________
http://bit.ly/u5x6DZ Fangame et suite du célèbre Metroid Prime 3.
Corvées : header fofo, Homebreware, µPy, new µLib, modes d'emploi, MLS sur DeSmuME, rotation écran, tuto wiki, domination de la Galak-sy.


Revenir en haut
Visiter le site web du posteur
Fantasix
Modérateur

Hors ligne

Inscrit le: 26 Avr 2010
Messages: 1 317
Localisation: SCREEN_UP, en -1, -1

MessagePosté le: Mer 29 Fév 2012 - 01:49    Sujet du message: Comment convertir une map en table ? Répondre en citant

spec', fait une boucle for dans la boucle for des lignes.

Une boucle qui va de 1 à nombreDePipes. Il ne te reste plus qu'à découper entre chaque Pipe, avec un string.sub combiné à un string.find.

N'oublie pas de, avant tout, calculer la largeur de la map (Nombre de Pipes).

Fanta'
_________________


BMA News :

Création du Homebrew Storage en cours ...


Revenir en haut
Visiter le site web du posteur
Papymouge
Modérateur

Hors ligne

Inscrit le: 10 Mai 2009
Messages: 693
Localisation: Vittel (88)

MessagePosté le: Mer 29 Fév 2012 - 09:38    Sujet du message: Comment convertir une map en table ? Répondre en citant

si tu utilise string.find, pas besoin de savoir combien il y a de pipe.

tu fais:
 
Code:
 pos=1
 dep,fin = string.find(objet_a_etudier, "|")
 while dep ~= nil do
   table.insert(table_a_remplir, string.sub(objet_a_etudier, pos, dep-1))
   pos=fin+1
   dep,fin = string.find(objet_a_etudier, "|", pos)
 end
 table.insert(table_a_remplir, string.sub(objet_a_etudier, pos, -1))
Voilà tant que string.find ne retourne pas nil, le tableau se rempli après il se rempli peut être pas de la bonne façon mais y à pas grand chose à modifié.
Je donne juste une trame.
_________________
La page de mes projets
L'ancienne page de mes projets


Revenir en haut
spectrenoir06


Hors ligne

Inscrit le: 13 Jan 2012
Messages: 184
Localisation: Paris

MessagePosté le: Mer 29 Fév 2012 - 14:23    Sujet du message: Comment convertir une map en table ? Répondre en citant

ok merci j'ai presque finit ma fonction pour les map isometriques













Dernière édition par spectrenoir06 le Mer 29 Fév 2012 - 14:58; édité 1 fois
Revenir en haut
Visiter le site web du posteur
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 03:25    Sujet du message: Comment convertir une map en table ?

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    µLua DS - Forum officiel | Official forum Index du Forum -> Section française -> Demande d'aide Toutes les heures sont au format GMT + 1 Heure
Aller à la page: 1, 2  >
Page 1 sur 2

 
Sauter vers:  

Index | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com