#0 

12-03-2011 23:51:46

mmorpglefilm
Abonné
Lieu: la galaxie UDFy-38135539
Date d'inscription: 18-05-2010
Messages: 162
Site web

Bonjour, j'aurais qu'elle que question à poser pour un créer un système de script pour mon jeu (en utilisent irrXml), comme sa, les utilisateurs de mon jeu pourrons le modifier comme il le veule, s'il y a par exemple une armes tros puissante, il aurons juste a modifier le fichiers xml qui luit correspond.

Sauf que tous n'est pas parfais :

Aurait-il une fonctions pour savoir le nombre de fichier dans un dossier, pour lire les fichiers je ferais une boucle qui se répète t'en qu'elle n'est pas arriver aux dernier fichier du dossier, sauf que sans le nombre de fichier dans le dossier c'est impossible.

Il y a t-il des tutoriels pour apprendre  irrXML ?

Merci de me répondre.

Hors ligne


#1 

13-03-2011 10:20:34

ramis
Membre
Date d'inscription: 27-10-2008
Messages: 92

Moi j'te conseille plutôt ça :
http://khayyam.developpez.com/articles/cpp/tinyxml/

t'en chieras moins niveau documentation, et c'est très haut niveau aussi.

Rapport à tes questions, une simple recherche google t'aurait suffi pour trouver le problème que pose ce genre d'opérations :
http://forum.hardware.fr/hfr/Programmat … 3838_1.htm --> Linux
http://forum.hardware.fr/hfr/Programmat … 2819_1.htm --> Windows

La portabilité de ton programme va sans doute en prendre un coup =/

Hors ligne


#2 

13-03-2011 11:29:25

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
Site web

une class est déjà disponible dans irrlicht:
http://irrlicht.sourceforge.net/docu/cl … a6c801f7f8

pour se qui est "d'irrXML" je ne l'utilise pas, mais je ne voie pas pourquoi utiliser une lib externe proposant les même possibiliter
sa alourdie ton projet pour rien ... ceci dit tinyxml est bien

d'après l'utilisation que tu en fait, je supose que t'est arme sont plus ou moin des entiter, donc tu pourrais dériver tout sa, d'une class qui gère le scripting
comme irr::io::IAttributes ...

Hors ligne


#3 

13-03-2011 14:30:30

mmorpglefilm
Abonné
Lieu: la galaxie UDFy-38135539
Date d'inscription: 18-05-2010
Messages: 162
Site web

Moi d'habitude j'utilise se truc pour charger des informations dans un fichier :

http://irrlicht-fr.org/lire_tuto.php?id=1462

Sauf que moi je créer un jeu dans l'espace, alors j'ai donc besoin de beaucoup de chose :

VaisseauName=Torus
TorusRotation.X=1
TorusRotation.y=1
TorusRotation.z=1
TorusTaille.x=1
TorusTaille.y=1
TorusTaille.z=1
TorusPosition.X=1
TorusPosition.y=1
TorusPosition.z=1
TorusFactions=2
TorusBouclier=100.000
TorusBouclierRestent=100.000
TorusCoque=50.000
TorusCoqueRestent=50.000
TorusHangar=3.000
TorusHangarRestent=1.000
TorusVitesse=1000
TorusVitesseEnCour=328
TorusAceleration=130
...
...

Sauf que pour charger tous sa, le petit système de sauvegarder était tros lent car il ouvrait à chaque fois le fichier puis le refermer pour chaque lecture.

ramis->pour tes lien, je voudrais juste savoir le nombre de fichier dans un dossier, mes sinon je vais voir si sa marche, et je vais aussi tester la class io d'irrlicht. (je vais encore devoir en baver...)

Dernière modification par mmorpglefilm (13-03-2011 14:48:40)

Hors ligne


#4 

13-03-2011 16:02:39

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
Site web

je comprend oui, dans se cas, l'autre alternative est de modifier le code que tu utilise, pour lire l'ensemble en une seul fois.

pour le nombre de fichier dans un dossier avec irrlicht

Code c++ :


irr::io::IFileSsystem *fs = device->getFileSystem();
irr::core::stringc current = fs->getWorkingDirectory();
fs->setWorkingDirectory("le dossier ou se trouve t'est config");
irr::io::IFileList* folder = fs->createFileList();

for(unsigned int i = 0; i<folder->getFileCount(); ++i)
        printf("filefpath: %s | filename: %s\n", folder->getPath(i).c_str(), folder->getFileName(i).c_str());

fs->setWorkingDirectorie(current);



ps: je n'est jamais tester le code si join, j'ai juste utiliser l'api ... au cas où ...

Hors ligne


#5 

13-03-2011 19:49:25

mmorpglefilm
Abonné
Lieu: la galaxie UDFy-38135539
Date d'inscription: 18-05-2010
Messages: 162
Site web

Tien, ton code ne marche pas, donc je les un peut modifier, voici se que sa done :

Code c++ :

irr::io::IFileSystem *fs = device->getFileSystem();
irr::core::stringc current = fs->getWorkingDirectory();
fs->changeWorkingDirectoryTo("le dossier ou se trouve t'est config");
irr::io::IFileList* folder = fs->createFileList();

for(irr::u32 i = 0; i<folder->getFileCount(); ++i)
    printf("filefpath: %s | filename: %s\n", folder->getPath().c_str(), folder->getFileName(i).c_str());

fs->changeWorkingDirectoryTo(current);



Et je les mêmes fais en C++, je trouver plus simple :

Code c++ :

for(irr::u32 i = 0; i < folder->getFileCount(); ++i)
    std::cout<<"le dossier ou se trouve t'est config"<< folder->getPath().c_str() << "filefpath: %s | filename: %s\n" <<folder->getFileName(i).c_str()<<std::endl;



Et sa marche parfaitement, merci !!!

Dernière modification par mmorpglefilm (13-03-2011 20:41:33)

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
882 membres
1429 sujets
11119 messages
Dernier membre inscrit: LiseBuisson96
8 invités en ligne
Aucun membre connecté
RSS Feed