Salut Lodesi, Je ne suis pas trop pour ce changement. Comme tu le dis, les projectiles et les particules s'en sortent très bien. Il n'y a que les characters qui sont dans un cas - il est vrai - un peu spécial.
Il faudrait peut-être un nouvel objet de type "stèle" à la mémoire des braves qui sont tombés au combat :). Quand un character meurt, on le retire de la liste des personnages et on créé une stèle qu'on ajoute à la liste des objets. Quand une stèle sort de l'écran, elle est supprimée comme le serait une particule ou un projectile. En gros, ça donnerait un truc du genre : class Stele : public PhysicalObj { ... }; avec dans Character::Die : ... Stale * rip = new Stele(...); lst_objects.AddObject(rip); ... Mais tu peux aussi très bien laisser la classe Character occuper le rôle de cette classe Stèle (lorsque son état m_alive = DEAD). Il suffirait donc de sortir le personnage de la liste des character et de le mettre dans la liste des objets (sauf s'il sort de l'écran, dans ce cas il est supprimé directement). Si le character (la stèle) sort de l'écran, il est retiré de la liste des objets (m_alive = GHOST). Tu aurais là ce que tu voulais avec un minimum de changement. a+ Drayan -----Message d'origine----- De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] la part de Laurent Defert Envoyé : dimanche 17 septembre 2006 03:05 À : Liste de développement - Wormux Objet : [Wormux-dev] Ghost state Hi! Developpement mail, so in french :p Salut! Comme j'en avais parlé, j'essaye de virer l'état ghost du code. A mon avis, c'est nécessaire parceque c'est une partie de code pas claire. On utilise l'état ghost dès qu'un objet sort de l'écran ou dès que l'objet n'effectue plus d'action dans le jeux (cf. les projectiles). Mais quand on regarde le source ces objets sont en fait bien présent dans le moteur (on continue à appeler les méthode draw/refresh, à faire des test dessus...). Dans l'ensemble, ça ne pose pas trop de problème: pour les particules et les projectiles, on peut les effacer au lieu de leur mettre un état ghost. Par contre, y'a un sérieux problème avec les characters. Si on efface le character en train de jouer wormux plante au premier appel de ActiveCharacter(). Pour régler ça, je vois 2 solutions: solution facile: au lieu d'effacer les characters morts, on les déplace dans une nouvelle liste de la class Team solution propre (mais longue et pénible ;): on se débrouille pour qu'aucun appel de ActiveCharacter() soit effectué sur un character qui vient de mourir. Donc j'appelle à l'aide pour savoir si je dois oublier mon idée de virer l'état ghost, si je prends la solution facile, si on s'embarque dans la solution difficile ou si vous avez une solution propre et facile à proposer :) a+ Lodesi -- _______________________________________________ Wormux-dev mailing list Wormux-dev@gna.org https://mail.gna.org/listinfo/wormux-dev ======================================================= Ce message et toutes les pieces jointes (ci-apres le "message") sont confidentiels et etablis a l'intention exclusive de ses destinataires. Toute utilisation ou diffusion non autorisee est interdite. Tout message electronique est susceptible d'alteration. La SOCIETE GENERALE et ses filiales declinent toute responsabilite au titre de ce message s'il a ete altere, deforme ou falsifie. ======================================================= This message and any attachments (the "message") are confidential and intended solely for the addressees. Any unauthorized use or dissemination is prohibited. E-mails are susceptible to alteration. Neither SOCIETE GENERALE nor any of its subsidiaries or affiliates shall be liable for the message if altered, changed or falsified. ======================================================= _______________________________________________ Wormux-dev mailing list Wormux-dev@gna.org https://mail.gna.org/listinfo/wormux-dev