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

Répondre à