Mon projet RPG "Le Royaume de Volghmar" => Problème de lecture de fichier.
Fabrice Il y a 3 ans Premium Pro7

Bonjour à tous.

J’ai commencé depuis peu un RPG.

Pour l’instant le jeu n’affiche que mon personnage principal et un bout de map que je compte étoffer au fur et à mesure.

Le perso marche et cours.

Et quand il dépasse les limites de l’écran il réapparaît à l’opposé comme faisait Link dans « Zelda link of the past ».

Mon problème est au niveau de la map. J’arrive sans problème à le faire comme dans l’atelier plateformer à partir d’un fichier.

Lire ceci : 111000111… c’est bon je gère.

Ce que j’ai remarqué avec cette méthode, c’est que si un indice de map est supérieur ou égale à 10, mon programme interprète un indice 10 comme un 1 et un 0. Ce qui est normal puisque les indices de la map ne contiennent pas de séparateur comme une virgule par exemple.

Donc depuis quelques jours j’essaie de programmer une fonction lisant les chiffres en excluant les virgules mais pas moyen de dépasser le premier chiffre.

En VBA je fais ça les doigts dans le nez avec la commande SPLIT mais en LUA il n’y a pas d’équivalent.

Le travail sur les chaînes de caractères n’est pas facile en LUA !!!

Est-ce que quelqu’un aurait une piste s’il vous plaît ?

J’utilise cette fonction LUA pour trouver le début et la fin du caractère défini entre guillemets : start, fin = string.find(readLine, « , »).

Ces 2 variables reçoivent réciproquement 2 et 2 car sur la 1ère ligne 4,4,4,4… la 1ère occurence de la virgule est en 2ème position.

Puis ensuite je me sert de la fonction string.sub. J’arrive à obtenir tous les indices de toutes lignes de la map mais uniquement le premier.

Je n’arrive pas à faire comprendre à LUA que la position du prochaine indice est start = start + 1.

Même en bidouillant plein de truc différent avec une boucle For je reste dans l’impasse.

Pourriez-vous me donner un petit conseil s’il vous plaît ?

 

Merci pour votre retour.

Fabrice.

 

Comments (7)

We can delimit literal strings also by matching double square brackets [[…]]. Literals in this bracketed form may run for several lines, may nest, and do not interpret escape sequences. Moreover, this form ignores the first character of the string when this character is a newline. This form is especially convenient for writing strings that contain program pieces; for instance,

Il me vient une idée. Avec string.sub je dois pouvoir récupérer chaque caractères sauf ceux == « , » et les stocker dans un tableau.
Pas certain que ce soit bien propre ni optimisé niveau allocation mémoire mais ça aura au moins le mérite de faire le boulot en attendant d’être plus à l’aise avec la manipulation des chaînes de caractères.
Je vous tiens au courant…

Merci pour ton retour maiq je crois que tu n’a pas compris mon besoin que j’ai sûrement mal exprimé.

Justement le problème est là. Je met le séparateur mais mon algorithme n’arrive pas à s’en sortir.
Je précise que ma map est générer avec pixel edit. Mon algorithme lit ensuite ce fichier avec le séparateur.

Merci duruti.
Toujours actif ! 😉
J’y suis arrivé hier soir tout seul comme un grand. Ce qui est amusant c’est de constater que la solution que j’ai choisis est la même que sur ton lien.
Le json je n’ai pas encore eu la curiosité de tester. Je vais voir ça.

Encore merci pour ton aide.

Merci duruti.
Toujours actif ! 
J’y suis arrivé hier soir tout seul comme un grand. Ce qui est amusant c’est de constater que la solution que j’ai choisis est la même que sur ton lien.
Le json je n’ai pas encore eu la curiosité de tester. Je vais voir ça.

Encore merci pour ton aide.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.