Annonces générales, discussions et feedbacks sur GDevelop.
User avatar
By victor
#33987 Bonjour à tous,

Je travaille depuis quelques temps sur un nouvelle extension : Advanced XML.

Présentation
C'est un parseur d'XML beaucoup plus puissant et avancé (d'où le nom) que celui intégré à Game Develop. En effet, il sera capable de lire toutes sortes de fichiers XML et pas seulement ceux qui sont écrit avec GD. Il n'y a donc plus aucune limite et on peut tout à fait lire des fichiers comme ci-dessous.
Le principe de fonctionnement est basé sur des références, sortes d'étiquette placées sur les balises et autres éléments du fichier XML. En fait, vous créez une référence sur un élément du fichier pour pouvoir accéder à son contenu.

Possibilités offertes :
  • Peut lire toute sorte de fichiers XML
  • Peut lire les balises et leurs attributs
  • Peut lire des fichiers présentant des balises de même nom (comme dans l'exemple ci-dessous) : possibilité de parcourir facilement les balises
  • Peut lire les texte entre balises (peut en théorie lire du HTML par exemple)
  • Peut lire les commentaires
  • Peut ouvrir, modifier, puis sauvegarder le fichier, et en créer de nouveaux
  • Un peu plus complexe que le parseur intégré à GD

Exemple :
Code: Select all<test>
   <infos>
      <version major="1" minor="2"/>
   </infos>
   <element param="un texte"/>
   <element param="un autre texte"/>
   <element param="encore"/>
   <element param="toujours"/>
</test>

events.png
events.png (24.72 KiB) Viewed 5740 times

Ce code affichera sur la scène :
Code: Select allun texte
un autre texte
encore
toujours


Téléchargement
L'extension est maintenant fournie avec Game Develop.
Code source sur Github : https://github.com/victorlevasseur/Advanced-XML
Last edited by victor on Sun 20 May 2012, 10:52, edited 6 times in total.
User avatar
By White-Shark
#33990 Cela serait pratique. Dans certains cas pour les sauvegardes mais surtout pour inclure différentes langues (quoi que c'est actuellement faisable aussi ^^). Beau boulot comme d'habitude en tout cas.
User avatar
By 4ian
#33991 Très bonne initiative :)
Seul bémol que je vois pour l'instant, je pense qu'il faudrait plutôt nommer l'extension AdvancedXML :)

Les textes des actions/conditions sont un peu flous aussi. Enfin, comme je connais TinyXML ça va, mais j'imagine que c'est pas forcément ultra clair pour d'autres personnes. Ça va être aussi surement assez difficile de trouver de meilleurs formulations, mais peut être que cela peut être quand même amélioré :
Genre, au lieu de : Créer la référence "firstElement" (chemin : "test") depuis l'élement "root"
Je verrai bien quelque chose du genre : Charger le sous élément "test" de "root" dans la référence "firstElement"

Le choix du nom pour GetAttributeString est très bien.

Enfin pour le moment ça reste du détail, bon courage pour la suite et beau boulot comme d'hab en effet :)
User avatar
By victor
#33994
Les textes des actions/conditions sont un peu flous aussi. Enfin, comme je connais TinyXML ça va, mais j'imagine que c'est pas forcément ultra clair pour d'autres personnes. Ça va être aussi surement assez difficile de trouver de meilleurs formulations, mais peut être que cela peut être quand même amélioré :
Genre, au lieu de : Créer la référence "firstElement" (chemin : "test") depuis l'élement "root"
Je verrai bien quelque chose du genre : Charger le sous élément "test" de "root" dans la référence "firstElement"

Tu as raison, j'allais justement demander comment formuler les conditions/actions (c'est pas toujours facile). Par contre, on peut taper un chemin dans cette action, donc je peux pas mettre "le sous-élément" (on peut aussi mettre .. pour récupérer le parent, * pour récupérer le 1er sous enfant, et on peut les formuler en chemin --> Exemple : "../*" qui récupère le 1er enfant du parent).

EDIT : L'extension est libre et est disponible sur son dépôt Github ici : https://github.com/victorlevasseur/Advanced-XML
User avatar
By 4ian
#34000 J'ai téléchargé, décompressé dans le SDK, ouvert et recompilé sans soucis, et testé de même sans soucis : Ça marche très bien. :D

Hé ! Très intéressant ! :)
Ca pourrait peut-être être ajouté de manière natif à GD plus tard, non ?


Très intéressant en effet, c'est en tout cas toujours plus sympa que le support limité présent actuellement dans GD. :)
Les sources de l'extension m'ont l'air très propres et concises, je pourrai sans doute l'intégrer de façon officielle dans GD par la suite.
User avatar
By victor
#34014 Nouvelle version : 1.0RC

Vous pouvez tester la 1ère version publique de l'extension Advanced XML :
https://github.com/downloads/victorlevasseur/Advanced-XML/AdvancedXML-1.0RC-GDL-2.1.10682.zip
(Décompressez et copiez dans le dossier de Game Develop)

Pour vous aider, voici le 1er article du wiki qui explique les principes de base : http://www.wiki.compilgames.net/doku.php/game_develop/articles/advancedxml/basis
User avatar
By 4ian
#34045 Je pense que ça reste assez technique et donc pas forcément évident pour n'importe qui, dommage que tu n'ai pas inclus l'exemple d'ailleurs.
J'ai reparcouru ça rapidement, c'est bien réalisé comme toujours, j’intégrerai surement ça à la prochaine version, vu que les sources sont très concises ce sera facilement maintenable :)
Bonne initiative pour le wiki :)