Partage
  • Partager sur Facebook
  • Partager sur Twitter

[PYGAME] Plantage, affichage et animation

Sujet résolu
    16 mai 2021 à 11:45:25

    Bonjour ! J'ai quelque problème sous pygame et je n'y arrive pas y remédier. 

    --> Dans la ligne 145 de mon fichier main.py, j'ai créer une condition combat où je fais apparaître plusieurs image et les fais patienter le temps que l'utilisateur puisse répondre au input, ligne 110. Le problème c'est que la fenêtre du jeu plante mais reprends juste après que le joueur trouve la solution.

    Je pense que c'est dû au fait que le code n'a plus rien a exécute quand il est dans la boucle, mais ce n'est qu'une théorie.

    --> Pour y remédier à ça, j'ai créer une animation pour l'ennemie (slime) en face du joueur pour que le programme ait quelque chose a exécute le temps de patienter (ligne 153 à 156). Mais il ne se passe rien, à cause du plantage surement, mais peut-être aussi car j'ai utilisé la même méthode d'animation qu'avec le joueur quand il marche (ligne 138 - 140) .

    -->Et enfin, j'ai voulu faire apparaître une barre de cœur (ligne 150) qui change à chaque fois que le joueur perde un point de vie suite à une mauvaise réponse (ligne 101-104). Mais la aussi, rien ne se passe et j'ai essayé de faire la même situation sans le plantage mais l'image ne change toujours pas.

    Voici mon code : https://gist.github.com/Yass1978/fa8fbf7de87aa4088c994f9e01fffb12

    J'espère que vous pourriez m'aider, merci d'avance.

    • Partager sur Facebook
    • Partager sur Twitter

    Mon ordinateur n'arrive pas à faire tourner Minecraft... 

    Et vous, comment allez vous ?

      16 mai 2021 à 15:09:19

      input est bloquant, faudrait écrire une fonction qui utilise pygame pour saisir les choix du joueur.
      • Partager sur Facebook
      • Partager sur Twitter

      Python c'est bon, mangez-en. 

        16 mai 2021 à 17:34:34

        OK, je vois. Est-ce que je devrais placer cette fonction là où était mon input ou ailleurs ?

        Du coup, voici ce que ça donne : 

            def player_input(self):
                for event in pygame.event.get():
                    if event.type == pygame.KEYDOWN:
                        if event.key != pygame.K_a:
                            self.health_point -= 1
        

        Pour l'instant ce n'est qu'avec la touche 'a', mais je pense faire 4 if comme ceci :

        if reponse == a: # la touche a
        reponse == pygame.key_a
        
        if reponse == b:
        reponse == pygame.key_b
        
        



        -
        Edité par Yass_CQFD 16 mai 2021 à 18:49:09

        • Partager sur Facebook
        • Partager sur Twitter

        Mon ordinateur n'arrive pas à faire tourner Minecraft... 

        Et vous, comment allez vous ?

          16 mai 2021 à 19:34:57

          À la place du input, pourquoi pas, l'essentiel c'est qu'il y ait une boucle événementielle active.
          • Partager sur Facebook
          • Partager sur Twitter

          Python c'est bon, mangez-en. 

            17 mai 2021 à 20:59:07

            J'ai changé mon code et implémenter la fonction player_input (l.71 de classe.py) mais aussi un elif pour la saisie du joueur (l.191 de main.py) comme vous pourriez le constater sur mon github.

            Le soucis c'est que ma valeur réponse (ligne 57 de classe.py) me donne seulement là ou se trouve la variable que je veux prélever mais pas la variable en soi.

            Exemple quand je fais print(reponse) il me donne [<sqlite3.Row object at 0x02630B50>]

            S'il y a quoi que ce soit d'autre qui poserai problème n’hésitait pas à me le signaler.

            -
            Edité par Yass_CQFD 17 mai 2021 à 21:00:24

            • Partager sur Facebook
            • Partager sur Twitter

            Mon ordinateur n'arrive pas à faire tourner Minecraft... 

            Et vous, comment allez vous ?

            Anonyme
              17 mai 2021 à 21:34:23

              Bonsoir,

              Alors, je n'ai envie de décrypter tes 300 lignes de code sans pouvoir les exécuter...

              Intègre à ton github les assets et ta DB

              -
              Edité par Anonyme 17 mai 2021 à 21:40:30

              • Partager sur Facebook
              • Partager sur Twitter
                17 mai 2021 à 21:49:59

                ...

                -
                Edité par Yass_CQFD 18 mai 2021 à 10:45:40

                • Partager sur Facebook
                • Partager sur Twitter

                Mon ordinateur n'arrive pas à faire tourner Minecraft... 

                Et vous, comment allez vous ?

                  18 mai 2021 à 12:55:11

                  Si reponse est un objet sqlite, et je ne connais pas SQLite, je suppose que les valeurs que tu cherches se trouvent dans les attributs, print(dir(reponse))
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Python c'est bon, mangez-en. 

                  [PYGAME] Plantage, affichage et animation

                  × 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