-
[C#] Créer un package
Bonjour,
J'ai crée un moteur de jeu 2D basé sur la programmation objet.
Lorsqu'un utilisateur sauvegarde sa creation, je serialise dans un XML mais je trouve pas ca terrible (c'est éditable et encombrant)
Y'a-t-il une classe en C# qui permet de gerer des fichiers de ressource externes dynamiquement? (un gros fichier avec les XML, images, sons à l'interieur)
Merci :)
-
Je pense que tu peux essayer de te faire ton propre exporteur, en travaillant avec les BinaryStream. J'ai moi-même fait un gestion d'import-export de la sorte (fichiers xml + audio) pour mon jeu.
Si tu veux voir à quoi ça ressemble, je peux te passer le bout de code qui gère ça.
-
Oui ca m'interesse de voir
Ce qui je me demande surtout en utilisant BinaryStream, c'est comment tu balises le fichier de ressources pour qu'on s'y retrouve à la lecture.
-
salut
tu peux aussi utiliser les classes de gestion de ressource du framework.
Ces classes te permettent e lire, mais aussi de créer tes propres fichiers de ressources :)
Sinon, une autre approche est d'avoir une classe qui "contient" tes resource et de la sérialiser en binaire.. ce qui présente l'avantage de se faire rapidemment, et etant en binaire, on lira pas trop te données et elles prendront "moins" de place :)
(enfin, perso, j'opterais "surement" pour la solution classe à sérialiser en binaire... (d'un autre coté, les classes de ressources doivent faire des choses un peu équivalente :)
The Monz, Toulouse
-
Merci pour votre aide, ca m'a permis d'affiner ma recherche:
http://dotnet.developpez.com/faq/asp...rationresource
-
Question :
Existe-t-il un moyen de retirer une ressource d'un fichier écrit avec System.Resources.ResourceWriter
J'arrive à ajouter des ressources, les récuperer mais pour les retirer je ne vois aucune méthode.
Merci
-
S'il n'y a pas de méthode exprès pour ça, tu peux toujours contourner le problème : tu crées un nouveau fichier de ressources, tu y mets toutes les ressources sauf celles que tu veux pas, et tu renommes...
Oui, je sais, c'est pas beau ;)
-
EN fait je suis passé par un ArrayList
J'ai crée une classe "resource" qui contient
string nom
object data
Je stock ainsi toutes mes ressources dans mon Arraylist ce qui me permet de beneficier de toutes les méthodes Add(), Remove()...
Pour sauvegarder mon fichier de ressources il me suffit de faire un foreach sur mon arraylist et d'ecrire mes ressources les unes après les autres :)
Ceci m'evite de reecrire mon fichier à chaque modification d'une ressource!:yaisse2:
Merci encore
-
Bien vu !
Mais ce serait encore plus simple avec un Dictionary<string, object>, comme ça tu n'aurais pas besoin de ta classe "resource" puisque le nom de la ressource serait la clé qui permet de la récupérer. En plus ce serait plus pratique à utiliser : avec un ArrayList, tu es obligé de boucler sur tous les éléments jusqu'à ce que tu trouves le bon, alors qu'avec un Dictionary, tu accèdes directement à l'élément que tu veux :
Code:
resources["nom_de_la_ressource"]
-
Encore plus fort! Merci :king::king: