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

Python Discussion :

problème de constitution d'une classe


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 268
    Par défaut problème de constitution d'une classe
    Salut !

    j'ai une classe munition qui comporte une méthode Mouv() qui gere le déplacement de la munition.

    et je voudrais lui donner à la classe, une liste des munitions existantes, puis si je veux détruire la munition, l'enlever de la liste, cependant ce qui me chiffone c'est que la liste des munitions étant dans la classe munition, je me demander ce qui se passerait car j'ai l'impression que la munition se supprime elle-meme ça fait bizarre.

    d'un autre coté, je voulais éviter de mettre la liste des munitions sur la classe vaisseau, car je voulais que cette liste n'existe pour le vaisseau que s'il a une arme.

    EDIT :

    Je viens de trouver une solution je crois, c'est que le vaisseau se crée une liste "charges" si sa variable self.Arme est supérieure à 0.
    la liste contiendrait alors les munitions de l'arme dont le numéro est donné dans self.Arme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                    # Supprime la munition des munitions existantes.
                    if self.Vaisseau.Arme == 1 :
                        self.Vaisseau.Charges1.remove(munition)
                    elif self.Vaisseau.Arme == 2 :
                        self.Vaisseau.Charges2.remove(munition)
    quand au mouvement de la munition il continuerait d'etre géré par la munition.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 094
    Par défaut
    c'est pas clair.
    pourquoi une liste de munitions ? suffit de créer l'objet munition au moment du tir en fonction de l'arme sélectionnée et décrémenter un compteur.

  3. #3
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 268
    Par défaut
    Oui, c'est vrai, mais une liste permet de tirer une serie de munitions avec certaines armes.

    quand à mon problème il se situait dans le fait de savoir si le mouvement de munition devait être géré par le vaisseau qui tire ou par la munition elle-même, mais je viens de me rendre compte que c'est beaucoup plus pratique que ce soit le vaisseau qui gère le mouvement de la munition et donne à la munition les nouvelles coordonnées de position à la méthode update() de la munition.

    Du coup mon code devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
             if len(self.Charges1) > 0 : # Pour le déplacement éventuel des munitions (mitraille)
                for charge in self.Vaisseau.Charges1 : # Charges est la liste de munitions de l'arme 1
                    if charge.Rect.bottom > EcranHaut - 6: # charge est la munition prise de Charges1
     
                        # Teste la rencontre avec les cibles "intercepteurs"
                        for ennemi in Lst_ennemis_05 :
                            # s'il y a rencontre ...
                            if charge.Rect.colliderect(ennemi.Rect) :
                                # Joue le son charge.Tir_Kill de la munition
                                charge.Tir_Kill.play()
                                # Supprime la munition des munitions existantes.
                                    self.Charges1.remove(charge)
     
                                # supprime l'ennemi touché de la liste des ennemis.
                                Lst_ennemis_05.remove(ennemi)
     
                        for ennemi in Lst_ennemis_06 :
                            # s'il y a rencontre ...
                            if charge.Rect.colliderect(ennemi.Rect) :
                                # Joue le son charge.Tir_Kill de la munition
                                charge.Tir_Kill.play()
                                # Supprime la munition des munitions existantes.
                                    self.Charges1.remove(charge)
     
                                # supprime l'ennemi touché de la liste des ennemis.
                                Lst_ennemis_06.remove(ennemi)
     
                    else :
                        self.Charges1.remove(charge)

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 094
    Par défaut
    Non.

    Le tireur sélectionne une arme, un type de munition, tir. Par exemple un lance-grenade, des grenades incendiaires.

    L'arme à sa propre cadence, temps de refroidissement, de rechargement, etc... indépendamment du tireur. Si elle est en capacité de tirer et qu'il reste des munitions alors feu !

    La munition fait son boulot indépendamment de l'arme et recevoir des nouvelles coordonnées peut faire partie de son boulot.

  5. #5
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 268
    Par défaut
    Merci de ton avis !

    selon moi, le tireur (vaisseau) tire, donc c'est lui sait où il a visé, donc qui a donné un angle de tir, ce n'est pas à la munition de décider de son angle de départ.
    Je pense que le seul boulot de la munition est de se déplacer selon l'angle qui lui a été donné.

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 094
    Par défaut
    L'angle est une donnée de la logique du jeu, pas du vaisseau. Même si en général on stocke cette donnée dans l'objet lui-même.

  7. #7
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 268
    Par défaut
    en effet, mais l'angle de tir dépend de la position du vaisseau qui tire, donc il va le mesurer au moment du tir et le passer à la munition pour quelle s'en serve pendant son déplacement.

Discussions similaires

  1. destruction d'une classe qui herite de CDialog
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 03/02/2004, 17h39
  2. Réponses: 14
    Dernier message: 15/01/2004, 01h15
  3. Conception d'une classe parente
    Par VincentB dans le forum Langage
    Réponses: 9
    Dernier message: 24/06/2003, 17h28
  4. Variable d'une Classe Ancêtre
    Par Génie dans le forum Langage
    Réponses: 3
    Dernier message: 18/09/2002, 19h24
  5. Sortir un typedef d'une classe
    Par Theophil dans le forum C++Builder
    Réponses: 13
    Dernier message: 03/07/2002, 17h21

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