Partage
  • Partager sur Facebook
  • Partager sur Twitter

ClassInteraction perso pièce

    18 mai 2013 à 14:33:04

    Salut à tous. Voici mon problème je n'arrive pas faire une classe Interaction entre une pièce et mon personnage. J'ai donc besoin de votre aide. J'ai besoin de cette classe pour finir mon jeu que je fais sur python 3 en utilisant le module pygame. Je vous que vous me dites comment m'y prendre pour faire disparaitre la pièce lorsque le personnage a les même position que la pièce. Et comment faire pour que cela apparait dans le compteur.

    Je vous remercie pour votre aide en avance.

    • Partager sur Facebook
    • Partager sur Twitter
      18 mai 2013 à 16:18:38

      Salut

      Pour pouvoir t'aider, on a besoin de voir ton code, la classe Personnage et Piece notamment et ce que tu as déjà essayé. Comment est définit la position de la pièce et du personnage (liste de position de tous les objets/personnage, chaque objet contient sa propre position, ...) ? Ou est stocké la valeur du compteur (dans la classe personnage, dans un autre objet) ?

      Si ton code est long, essayes de sélectionner les parties qui pourrait nous aider à bien comprendre ton problème.

      -
      Edité par cookkiees 18 mai 2013 à 16:18:51

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        18 mai 2013 à 16:29:39

        # classe personnage
        def is_interact(self, piece):
            return self.position == piece.position
        
        # programme principal
        
        if person.is_interact(my_piece):
            del my_piece



        -
        Edité par Anonyme 18 mai 2013 à 16:29:59

        • Partager sur Facebook
        • Partager sur Twitter
          18 mai 2013 à 17:33:47

          Et ce qui concerne le personnage, pas besoin de faire apparaitre la classPerso ?

          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            18 mai 2013 à 17:36:03

            person est l'instance de la classe Personnage...

            • Partager sur Facebook
            • Partager sur Twitter
              18 mai 2013 à 17:36:29

              voici la classPerso

              def __init__(self, droite, gauche, haut, bas, niveau):

                        self.droite = pygame.image.load(droite).convert_alpha()

                self.gauche = pygame.image.load(gauche).convert_alpha()

                self.haut = pygame.image.load(haut).convert_alpha()

                        self.bas = pygame.image.load(bas).convert_alpha()

                        self.case_x = 0

                self.case_y = 0

                self.x = 0

                self.y = 0

                        self.direction = self.droite

                        self.niveau = niveau

              def deplacer(self, direction):

                      if direction == 'droite':

                               if self.case_x < (nombre_sprite_cote - 1):

                                       if self.niveau.structure[self.case_y][self.case_x+1] != 'm':

                                               self.case_x += 1

               self.x = self.case_x * taille_sprite

                               self.direction = self.droite

                      if direction == 'gauche':

                               if self.case_x > 0:

                                       if self.niveau.structure[self.case_y][self.case_x-1] != 'm':

                                               self.case_x -= 1

               self.x = self.case_x * taille_sprite

                                       self.direction = self.gauche

                       if direction == 'haut':

                               if self.case_y > 0:

                                       if self.niveau.structure[self.case_y-1][self.case_x] != 'm':

              self.case_y -= 1

              self.y = self.case_y * taille_sprite

              self.direction = self.haut

                       if direction == 'bas':

              if self.case_y < (nombre_sprite_cote - 1):

              if self.niveau.structure[self.case_y+1][self.case_x] != 'm':

              self.case_y += 1

              self.y = self.case_y * taille_sprite

              self.direction = self.bas

              -
              Edité par arthurtheone 18 mai 2013 à 17:43:48

              • Partager sur Facebook
              • Partager sur Twitter
                18 mai 2013 à 17:45:09

                et enfin la classPièce

                class Piece:

                    #on initialise la piece avec une valeur en x et une en y

                    def __init__(self, x, y):

                        #position en x

                        self.x = x

                        #position en y

                        self.y = y

                        #on met la pièce sur le plateau

                        self.estSurPlateau = True

                    def position(self):

                        #on vérifie si la pièce est sur le plateau

                        #si c'est le cas on affiche sa position

                        if self.estSurPlateau:

                            print ("La pièce se trouve en ({},{})" format(self.x, self.y))

                        else:

                            print ("Cette pièce n'est plus sur le plateau")

                    def changePosition(self, new x, new y):

                        """ On change la valeur des positions"""

                        if self.estSurPlateau:

                            self.x = new x

                            self.y = new y

                        else:

                            print ("Cette pièce n'est plus sur le plateau")

                    def enleve(self):

                        self.estSurPlateau = False

                        print ("La pièce est retirée du plateau")

                • Partager sur Facebook
                • Partager sur Twitter
                  18 mai 2013 à 17:49:33

                  Fred donc d'après toi je dois mettre dans la classPerso ce code
                  def is_interact (self,piece):
                          return self.position==piece.position
                  Puis dans le programme principale je dois mettre
                  if person.is_interact(my_piece):
                         del my_piece
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    18 mai 2013 à 17:53:35

                    self.x et self.y, je suppose sont les positions de personnage.

                    Quelle est la difficulté d'insérer mon code plus haut dans ta classe Personnage?

                    #dans classe Personnage
                    def is_interact(self, piece):
                        self.position = (self.x, self.y)
                        return self.position == piece.position
                    #dans classe Piece
                    def __init__(self, x, y):
                        self.x, self.y = x, y
                        self.position = (self.x, self.y)
                    
                    #dans programme principal
                    person = Personnage(...)
                    my_piece = Piece(0, 0)
                    if person.is_interact(my_piece):
                        del my_piece



                    • Partager sur Facebook
                    • Partager sur Twitter

                    ClassInteraction perso pièce

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown