IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Comment gérer un nombre inconnu d'objet ?


Sujet :

C++

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut Comment gérer un nombre inconnu d'objet ?
    Bonjour a tous !
    Le titre n'est pas trés explicite, mais je vais tenter de l'éclairer un peu .
    Pour vous mettre dans le bain, je vais vous expliquer ma demarche

    J'ai fait il a peu quelques groupes de classes destiné a être le squelete de mon aplication ( jeu ) .
    Par exemple, je vient de finir une calsse destinée a receuillir les évènements clavier, et a les transcrire en quelquechose de plus " lisible" pour le reste de mon programme .

    Mon prochain but est la cration d'une classe dont le funeste destin sera de me servir jusqu'a la fin de ses jour ( Mouhahahahaha ... dsl ), enfin plus sérieusement, cette classe aura pour but de permetre l'affichage a l'ecran selon des polices chargé précédement ( donc elle doit aussi permetre l'enregistrement de ces police dans le prog ; je doit pouvoir les retrouver a tout moment grace a un identifiant par exemple .... )

    (Je n'ai pas encore vraiment regardé de pres la methode exacte pour afficher tu text; je sais juste qu'il y a 2 moyen ( bitmap et vectorielle je crois ) mais je verrai ca une fois mon probléme résolu . je précise , car si ca se trouve, je n'ai pas besoin de gérer tout ca de cette maniére ... mais le probléme reste alors ouvert pour gérer d'autre entité par exemple )

    Ce que j'aimerai faire ?
    -> Pouvoir chargé un nombre X d'objet ( "font" dans ce cas la, mais ca peut trés bien etre autre chose ... un personnage, un objet, une arme ect ... ) et y avoir accés aprés ( je ne sais aps trop comment faire ... )
    Le nombre et le type d'objet n'ont pas d'importance , je me charge de récupérer les données correpondantes dans divers fichiers texte, et de les transformer en donnée interprétable par mon appli .

    Le premier pb qui m'est venu a l'esprit, est que je devais pouvoir chargé un nombre indéterminé d'entité ...donc la methode : on prévoit X objet, qu'on initilise juste pour le plaisir et on les "active" vraiment dés que l'on doit les charger... on oublie :p

    J'ai ensuite pensé a me servir d'un tableau ... bon, a priori, un tableau statique on oubli ( car le nbre d'netié est variable ), il nous reste donc un conteneur de type vector par ex ...

    Imaginons ca ( un vector par type d'objet ( font / item / perso / arme ... ) )
    Quand je parse mes fichier texte, pour savoir quoi chargé dans tel niveau , j'ajoute un objet dans le vector du bon type .
    Si jamais 2 fois le MEME objet ( meme identifiant ) sont enregistré, j'ajoute un "2", "3" ect..a la fin du nouvel identifiant a ajouté ( avec un recherche ca ne devrait pas etre trés dur .
    ( hum je constate que je suis entrain de m'enmeller les pinceau ..j'étati parti sur un idée de vector d'objet et j'arrive sur un vector de string ...

    Bon, ca doit vous paraitre trés confus ... mais si vous avez des idée ... et bien je prend merci

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Perso j'ai pas très bien compris ce que tu voulais faire. Un genre de flyweight factory (truc à base de map<string, Objet*>) ? Du comptage de référence avec pointeur intelligent ? http://loulou.developpez.com/tutoriels/moteur3d/partie4 ?

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Points : 180
    Points
    180
    Par défaut
    Tu crees un type de base dont tous les objets heritent.
    Des vectors qui chargent et maintienent des pointeurs sur ces objects.
    ????

    Autrement Design Patterns : Factory.

  4. #4
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    Le temps d'aller me docu. un peu sur ce design Factory et je revient
    marchi ^^

    edit: me revoila !

    Je vais prendre un exemple concret ( enfin pas si concret que ca ..car je n'ai rien implementé mais bon ... immaginons )
    J'ai un fichier txt avec dedans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ARME -> pistolet
    ARME -> sabre
    PERSO -> le gros robet
    ARME -> pistolet
    Je fait mon affaire du chargement des données lié a ces identifiants ! ( il me suffit pour la prémier arme, de trouver le fichier pistolet.txt , et d'en tirer toute les caractéristique dont j'ai besoin .... force, taille, poid, chargeur , texture et animation associées ect ... ) .
    Une fois que j'ai ceci, il me faut crée un objet de type cArme par exemple dans mon programme . Cet objet contiendra toutes les caractéristiques lu précédement dans le fichier txt.

    Mon probléme est : ou et comment stocker cet objet, sachant que : ( pour le moment )
    - je veut pouvoir a tout instant en lire les caractéristiques ; les modifier ( dans le jeu uniquement, pas dans le fichier txt bien sur ) ect ...

    ( j'avoue que je suis pas mal dans le flou moi même, car il me manque plus q'un maillion de la chaine ... j'ignore ce qui se trouve au bout du tunnel la ^^ )

    Mon probleme ( enfin un de mes probléme ) a mon avis est que je n'ai pas envisagé les liens entre tout ces objet au niveau programation .
    Il est en effet idiot de vouloir retrouver les caractéristique d'un pistolet si celui-ci n'est pas présent a un endroit précis dans le jeu !
    Je pense a un pointeur du style.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    cEquipement * ArmeCourante ;
    ArmeCourante = pistolet ;
     
    ou
     
    cItem * ObjetSurLaTable ;
    ObjetSurLaTable = pistolet ;
    Enfin, ma vison des choses n'est peut-etre pas la bonne ...c'est juste idée que je vient d'avoir en répondant a ce message .

    Apres il me reste encore a voir OU je stocke précisément ce "pistolet" .

    J'ai regardé a qoi correspondait le factory design, je ne suis pas certain que ce soit ce que je cherche ( mais bon, j'irai re-jeter un oeil desus plus tard .. on sait jamais ^^ )
    j'espére que vous y voyez un peu plus claire

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Je pense vraiment qu'il te faut une flyweight factory.

    En gros :

    - Tu associes à chacun de tes objets un identifiant (entier, chaine de caractères, ...).
    - Tu construis une flyweight factory qui va charger, décharger et stocker ces objets.
    - Lorsque ton appli a besoin de manipuler un objet, elle le demande à la factory sous forme d'identifiant et récupère un pointeur.
    - Lorsque plus personne n'a besoin d'une ressource (-> pointeurs intelligents avec comptage de référence) celle-ci peut être déchargée sans souci.
    - Après tu peux peaufiner selon ton appli : prévoir un contrôle plus "manuel" pour précharger certaines ressources, ajouter un délai avant libération au cas où la ressource soit rechargée juste après, etc...
    - Le fait d'associer chaque objet à un identifiant te permettra de manipuler ceux-ci facilement dans tes futurs scripts.

    Evidemment, ceci est une solution générale, et peut-être qu'elle sera plus ou moins appropriée pour le type de ressource que tu manipules et l'utilisation que tu en fais.

    Ensuite pour ce qui est du lien physique entre les objets dans le jeu, ça c'est plutôt le boulot d'un scenegraph

  6. #6
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    OKi doki je me replonge dedans dés que j'ai un peu de temps ^^
    merci

  7. #7
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Points : 180
    Points
    180
    Par défaut
    Pour un jeu, j'opterai plus pour une version de chaine de responsabilités :

    Un Monde contient des objets certains de ces objets sont des conteneurs et contiennent eux meme des objets.

    Tu maintiens dans le cas des conteneurs des vectors d'items.

    Tu as un certain nombre de methodes de bases (genre Render()).

    Enfin, comme ca tu as la main sur le chargement d'objet et tu maintiens une hierarchie (un bonhomme et le pere de son arme, son armure, et d'une grenade; le monde est le pere des decors, de ton perso et des ennemis).

  8. #8
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    re coucou
    Ensuite pour ce qui est du lien physique entre les objets dans le jeu, ça c'est plutôt le boulot d'un scenegraph
    Bon bah .... ce sera un boulot pour moi alors

    > mtopoloff : Hum, en gros, une sorte d'arbre ?
    Le principale avantage que j'y voit est pour le dessin des objet comme tu le dit ; il me suffirai d'y aller récurssivement et d'afficher tout les objet du premier vector ..puis tout ceux contenu dans ces premiers objets ect ...
    Sinon je ne voit pas trop comment ca va régler mon probleme de chargement mais merci de l'idée !!

    Sinon, je vient de me repencher sur le DP : factory , et voila ce que j'en ai comprit / comment je pense l'utiliser , dites-moi ce que vous en pensez .

    On commence par une classe Factory ( singleton d'apres ce que j'ai lu ) .

    Le principe :
    - cette classe va se charger de stocker tout les objets ( pas des pointeurs ) du jeu
    - pour se faire on cré un nouvel item ( une classe cItem dont vont dérivée toutes les classes fille représentant mes divers objets dans le jeu ) que j'ajoute dans un conteneur ( vector par ex )
    - pour supprimer un objet, il suffira d'appeler une fonction detruire(), avec en paramétre l'identifiant ( unique ) de l'item a détruire .
    -pour récupérer un objet, on apelle une fonction get(), avec en param l'identifiant de l'objet, et on récupére un pointeur sur un l'objet contenu dans une case de mon vector en question .

    Enfin voila en gros ce que j'ai compris j'espére ne pas etre trop loin de la vérité

  9. #9
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    > mtopoloff : Hum, en gros, une sorte d'arbre ?
    Le principale avantage que j'y voit est pour le dessin des objet comme tu le dit ; il me suffirai d'y aller récurssivement et d'afficher tout les objet du premier vector ..puis tout ceux contenu dans ces premiers objets ect ...
    Sinon je ne voit pas trop comment ca va régler mon probleme de chargement mais merci de l'idée !!
    C'est justement ça un scenegraph, et effectivement ça a très peu à voir avec le chargement des ressources.

    Sinon, je vient de me repencher sur le DP : factory , et voila ce que j'en ai comprit / comment je pense l'utiliser , dites-moi ce que vous en pensez .
    C'est à peu près ça. Sauf que ce n'est pas une factory qu'il te faut, mas une flyweight factory (la différence en gros c'est que la flyweight n'ira pas recharger une ressource si celle-ci l'est déjà).
    Ensuite tu as une contradiction : tu veux stocker des objets polymorphiques (dérivant d'une même classe), mais pas sous forme de pointeur. Problème. -> Dans ce cas tu ne peux pas te passer de pointeurs. Et pour finir, pas besoin de faire une classe de base (imagine que tu stockes des objets complétement différents : texture, mesh, material, ...), cf. mon tutoriel n°4. Et dis toi bien qu'il n'y aura que des cItem* qui sortiront de ta fabrique, est-ce que tu pourrais manipuler tous tes objets via leur classe de base dans ton jeu ?

  10. #10
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    Un petit coucou matinal

    Bon tout d'abord il va faloir que je me renseigne sur les ficelle du scene-graph-ing ^^ ...

    Concernant la différence entre la flyeight factory et la factory normale, je m'interoge encore . En effet, si le principe de la flyweight est de ne PAS charger 2 fois la meme ressource, je ne susi pas sur que ce soit ca que je veuille .
    Par contre, je ne chargerai pas 2 fois la meme texture pour des objets identique ( mais ca c'est mon TextureManager qui s'en occupe )
    Ensuite, si je veut faire par exemple un niveau ou il y a 2 ennemis dont l'identifiant est " chien"
    J'hesite encore sur la procédure a suivre ... car si dans mon fichier j'ai qquchose comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [COMBAT NUMERO 4]
    MONSTRE -> chien
    MONSTRE-> chien
    Je risque aprés de m'enbrouiller pour retrouver lequel est lequel ( par exemple dans le cilage du "chien" dans les combat ... et meme en les ajoutant en tant ue "chien" et "chien2"

    Sinon, je peut faire qquchose du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [COMBAT NUMERO 4]
    MONSTRE -> chien ( m_chien )
    MONSTRE-> chien (m_chien2 )
    Et ainsi je les enregistre selon un identifiant différent ; le mot clé chien, servant juste a m'indique ou trouver le fichier contenant leur caractéristiques ..

    Enfin je n'ai pas les idées trés claires la dessus pour le moment :/

    Conercant les obket polymorphique ... hum, je n'avais pas réfléchi a ca
    Je vais revoir ma copie ( ce soir ) et je re-post ca
    merci

  11. #11
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    coucou
    Me revoila aprés une semaine de vacances ... rien de tel pour tout oublier
    Je suis donc entrain de me mettre dans le bain et de me replancher sur ce petit pb .

    Voici jusqu'alors mes conclusion ...et mes questions :p

    Bon, je doit avouer que je suis un peu confus vis a vis des objets polymorphique , classe dérivée ect ... je ne vois plus trop ou étaient mes erreurs
    Enfin si j'ai bien comprit , je ne peut pas stocker de cItem directement ( car c'est une classe abstraite ) or, j'ai besoin de stocker des cItem et non pas des pointeur de cItem .... hum aïe :p

    ( parenthése : concernant le fait que tout mes objets ne partageraient pas tous les meme propriétés ect ... ( texture , anim , map ect ... ) ; je pensais juste faire une classe abstraite contenant un string ( l'indentifiant .. ) )

    Bon, comment contourner la chose hummm , la j'avoue je bloque :/

    quun a des idées ?

    edit : une erreur de frappe dans la faq ou j'ai lu trop vite ?

    Base* Obj = new Derivee1;
    Base* Obj = new Derivee2;

    Base* Copy1 = Obj1->Clone(); // Copy1 pointe sur un objet de type Derivee1
    Base* Copy2 = Obj2->Clone(); // Copy2 pointe sur un objet de type Derivee2
    J'aurais mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Base* Obj1 = new Derivee1; 
    Base* Obj2 = new Derivee2;
    http://c.developpez.com/faq/cpp/?pag...es#CLASS_clone

  12. #12
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    une erreur de frappe dans la faq ou j'ai lu trop vite ?
    C'est d'ores et déjà corrigé dans la prochaine version de la FAQ. Merci quand même de l'avoir signalé

    Pour ton problème... je crois qu'il fait que nous aussi on se remette dans le bain

    En l'occurence tu peux détailler ce point ?
    Enfin si j'ai bien comprit , je ne peut pas stocker de cItem directement ( car c'est une classe abstraite ) or, j'ai besoin de stocker des cItem et non pas des pointeur de cItem .... hum aïe :p

  13. #13
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    en gros je ne peut pas avoir un

    hum , comme d'ab' je m'embrouille :p

    il me suffit d'avoir un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cItem * tab[100] ;
    C'est possible ca , non ?
    Mais je ne vois pas trés bien comment manipuler ca avec mes 3 fonctions get / load / free ...[/code]

  14. #14
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    Citation Envoyé par Clad3
    en gros je ne peut pas avoir un

    hum , comme d'ab' je m'embrouille :p

    il me suffit d'avoir un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cItem * tab[100] ;

    Salut,

    j'ai pas lu tout ce qu'il y avait ce post, mais je corrige ceci


    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cItem * tab ;
    // tab = new cItem[100];


    Enjoy yourself !

  15. #15
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    oula c'est des erreurs grave de ma parts ca ...

    -> représente un tableau dont chaque case contient une instance de la clase cItem c'est ca ?

    -> représente un pointeur sur un objet de type cItem

    Hum .. pour moi

    représente un tableau de pointeur sur des objet de type cItem
    J'ai du louper qquchose

    edit : heu je vais prendre le tps de relire ca ...car je crois que j'ai encore écrit une belle annerie ...

  16. #16
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Utilise des smartpointeurs pour tes Items et génère une liste plutôt qu'un tableau...

    Regarde les tutoriaux de Loulou24, ils sont super bien fait, il a super bien bossé dessus, appuie toi sur son code très propre !!

  17. #17
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    Concernant les smartpointeurs , j'en fais mon affaire
    Et pour le conteneur a utiliser, ce n'est qu'un exemple, je n'ai pas encore choisit celui qui me sera le plus adapté ; mais c'est un détail !

    je trouve les tuto de loulou bien fait aussi; mais j'ai un peu de mal a rentrer dedans , et quand j'ai une idée en tête, j'aime bien la réaliser :p et je me suis mis en tête que la facons dont je vois ma factory n'est aps trop mauvaise pour le moment .... reste juste que je rame comme c'est pas possible pour l'implementation

    merci des conseils !

  18. #18
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Citation Envoyé par Ti-R
    Regarde les tutoriaux de Loulou24, ils sont super bien fait, il a super bien bossé dessus, appuie toi sur son code très propre !!
    Merci

    Pour ta fabrique dis nous tout ce que tu as déjà en tête, même si c'est encore un peu flou, peut-être qu'on pourra t'aider à y voir plus clair.

  19. #19
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    heu, juste une question, concernant mon cItem * tab[100] j'ai bon sur la signification ou pas ?

    Enfin, je vais essayer de vous dire noir sur blanc ce que je souhaite avoir ... ( en essayant de passez les détail technique car c'est sur eux que je blocque )

    une classe particuliére qui aura pour but unique de gérer TOUT les objets de mon jeu ( perso, monstre, map, item, animation,script en tout genre ect ... )

    Cette classe possédera a priori 3 fonctions de base
    - une qu'on apellera load ; dont le but sera uniquement de Créer un objet d'un type précis a partir d'information contenu dans des fichiers ( je me charge de la bonne récupération de ces info ... ) en mémoire et de le stocker qqupart .
    - une qu'on apellera get() et qui prendra en paramétre un identifiant et me renvera un pointeur vers l'objet créer précédement en mémoire ayant cet identifiant . ( ce qui me premetra de manipuler ces objet dans le reste de mon programme )
    ( Tout les identifiant seront Unique ! )
    - une qu'on nommera free() et qui se chargera juste de détruire de la mémoire un objet créer précédement ( prenant donc en paramétre l'identifiant de l'objet a détruire )

    Je pense stocker tout ces objets dans un même conteneur ( la est peut-etre mon erreur ... ) .
    Je pense faire de cette classe un singleton .

    Et aprés ca ... je séche :/

  20. #20
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Cela peut fonctionner, pas de problème la dessus, il faut juste que tous tes objets héritent de cItem.

    Le problème est aussi qu'il faut que tu stocke un identifiant par class.

    IDENTIFIANT_PERSO3D, IDENTIFINAT_ARME_FUSIL etc...

    Pour chaque class, ce qui permet de charger facilement les éléments, lorsque tu vois l'identifiant 3 qui correspondrait à IDENTIFIANT_PERSO3D, tu créer la class CPerso3D, tu appels ta méthode Load(); avec un pointeur sur ton fichier en paramètre, et hop tu as loadé l'objet 3D etc...

    Donc n'oublie pas dans CItem l'identifiant "int identifiant;" qui te permettra le chargement…

Discussions similaires

  1. Réponses: 13
    Dernier message: 25/05/2010, 07h44
  2. Comment lister un nombre inconnu de sous repertoires ?
    Par liocifer dans le forum VBScript
    Réponses: 2
    Dernier message: 02/06/2008, 19h50
  3. Comment gérer le style d'un objet créé dynamiquement
    Par Delphi-ne dans le forum ASP.NET
    Réponses: 3
    Dernier message: 05/02/2008, 16h12
  4. gérer un nombre inconnu d'input text
    Par Ludosjob dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/05/2007, 16h22
  5. comment gérer un nombre non fixe de paramètres entrant ?
    Par c_moi_c_moi dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 28/03/2006, 12h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo