Partage
  • Partager sur Facebook
  • Partager sur Twitter

Premiere fois avec Pygame

    27 juillet 2021 à 12:45:28

    Bonjour j'aurais besoin de vôtre aide j'essaie de coder un jeu d'echec j'ai eu premier probleme avec pygame pour l'importer proble que j'ai réussi a résoudre mais cependant maintenant ce n'ai plus le probleme de l'importer mais c'est commande qui ne fonctionnne pas.

    dans la commande pour charger une pièce du jeu cela ne fonctionnent pas.

    Black_Knight=pygame.transform.scale(pygame.image.load(os.path.join(Path, "bKN.png")),(Square, Square))

    .transform.scale ne fonctionne pas pygame ne les reconnait pas et .image.load non plus.

    Avez vous une idée du probleme ?

    Merci beaucoup pour l'aide apporter.

    • Partager sur Facebook
    • Partager sur Twitter
      27 juillet 2021 à 12:56:40

      c'est quoi le message d'erreur exact et entier (le traceback) ? (je pense plutôt qu'il ne trouve pas le chemin de tes images)

      Sinon c'est mieux sur le forum de mettre le code dans une balise de code avec le bouton </> 

      • Partager sur Facebook
      • Partager sur Twitter
        27 juillet 2021 à 13:03:53

        c'est pas une erreur et normalement le code et bon cest un probleme avec pygame

        • Partager sur Facebook
        • Partager sur Twitter
          27 juillet 2021 à 13:06:42

          Selon toi , ton code devrait faire quoi ? (la partie du code que l'on voit du moins)

          -
          Edité par umfred 27 juillet 2021 à 13:06:57

          • Partager sur Facebook
          • Partager sur Twitter
            27 juillet 2021 à 13:11:01

            Il devrait cherche l'image des pion et le charger cependant quand je code avec le module pygame il ne reconnait pas .transform.scale et .image.load 

            normalement il devrait les reconnaitre et je ne sais pas pourquoi.

            • Partager sur Facebook
            • Partager sur Twitter
              27 juillet 2021 à 13:21:56

              Qu'est-ce que tu sous-entends par "il ne reconnait pas" ? pas proposé par l'IDE ? pas anormal et ton code doit fonctionné sans problème.

              (il charge mais ne les affiche pas)

              • Partager sur Facebook
              • Partager sur Twitter
                27 juillet 2021 à 13:24:40

                sur le screen normalement les commande de pygame devrais etre de la meme couleur que pygame et devrai m'ouvrir une page python avec les case noire et un pion grace au commande il devrait charger sans probleme les image.

                Mais quand je passe la sourit dessus il ne reconnait pas la commande pygame.

                • Partager sur Facebook
                • Partager sur Twitter
                  27 juillet 2021 à 13:50:43

                  Bizarre ma réponse n'apparaît pas, j'avais répondu juste après le PO ...

                  Je disais, y a pas un fichier nommé pygame dans le répertoire ?

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Python c'est bon, mangez-en. 

                    27 juillet 2021 à 13:54:28

                    expliquer je n'ai pas compris vous voulez dire quoi par la ?

                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 juillet 2021 à 14:05:44

                      MaximeMauchamp1 a écrit:

                      sur le screen normalement les commande de pygame devrais etre de la meme couleur que pygame et devrai m'ouvrir une page python avec les case noire et un pion grace au commande il devrait charger sans probleme les image.

                      Mais quand je passe la sourit dessus il ne reconnait pas la commande pygame.


                      donc bref, quand tu dis que les commandes de pygame devraient être de la même couleur, et bien non pas forcément, la coloration est du fait de l'IDE, donc le code devrait être fonctionnel, sinon tu aurais des erreurs.
                      et de ce que l'on voit du code tu affectes à des variables leurs images correspondantes; rien n'est censé s'afficher avec les quelques lignes que l'on voit.
                      Met le code en entier si tu veux que l'on essai de trouver pourquoi l'affichage ne se fait pas (en utilisant le bouton </> et copiant/collant ton code puis choisissant python dans la liste dans la fenêtre qui s'affichera)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        27 juillet 2021 à 14:08:52

                        le code n'est pas le probleme le probleme c'est pygame j'ai deux pages de code je suis un tuto pour faire le jeu d'echec https://www.youtube.com/watch?v=6pLTtZWwlus

                        -
                        Edité par MaximeMauchamp1 27 juillet 2021 à 14:10:19

                        • Partager sur Facebook
                        • Partager sur Twitter
                          27 juillet 2021 à 14:09:45

                          MaximeMauchamp1 a écrit:

                          expliquer je n'ai pas compris vous voulez dire quoi par la ?


                          Si dans le répertoire de travail il y a un fichier nommé pygame.py, le code importera ce fichier au lieu de la lib. Du moins il me semble, ça fait longtemps que je n'ai pas fait d'imports.

                          -
                          Edité par josmiley 27 juillet 2021 à 14:11:16

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Python c'est bon, mangez-en. 

                            27 juillet 2021 à 14:12:39

                            C'est vous qui savez si vous en avez créé un, sinon c'est que ce n'est pas le problème.
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Python c'est bon, mangez-en. 

                              27 juillet 2021 à 14:30:21

                              Peut être que sous windows il faut un pygame.init()
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Python c'est bon, mangez-en. 

                                27 juillet 2021 à 15:23:19

                                tu es à la fin de la vidéo de ton lien ? ça doit t'ouvrir 2 fenêtres, une qui est l'interpréteur python (où tu as le message de pygame) et une autre qui est la fenêtre pygame avec l'image
                                Le code de la 1ere vidéo n'est pas très grand

                                tu n'as pas oublié l'appel à main() dans main.py ? c'est bien main.py le fichier de démarrage du projet ?  (clic droit sur le fichier puis "définir comme fichier de démarrage" si c'est comme dans visual studio

                                code issu de la vidéo (j'ai utilsé d'autres nom de variables et adapter le nom des images, images issues pour ma part de la page wikipedia https://commons.wikimedia.org/wiki/Category:PNG_chess_pieces/Standard_transparent):

                                main.py

                                import pygame
                                from chess_game.constants import *
                                
                                pygame.init()
                                clock=pygame.time.Clock()
                                win=pygame.display.set_mode((width,height))
                                
                                def main():
                                    run=True
                                    FPS=60
                                    while run:
                                        clock.tick(FPS)
                                        win.blit(white_cavalier,(50,50))
                                
                                        pygame.display.update()
                                        
                                        for event in pygame.event.get():
                                            if event.type == pygame.QUIT:
                                                run=False
                                                pygame.quit()
                                
                                main()

                                constants.py

                                import pygame
                                import os
                                
                                width,height=640,640
                                rows, cols=8,8
                                square=width//rows
                                path="chess_game/chess_images"
                                
                                brown=(87,16,16)
                                white=(255,255,255)
                                
                                #black pieces
                                black_cavalier=pygame.transform.scale(pygame.image.load(os.path.join(path,"cavalier_noir.png")),(square,square))
                                black_fou=pygame.transform.scale(pygame.image.load(os.path.join(path,"fou_noir.png")),(square,square))
                                black_pion=pygame.transform.scale(pygame.image.load(os.path.join(path,"pion_noir.png")),(square,square))
                                black_tour=pygame.transform.scale(pygame.image.load(os.path.join(path,"tour_noir.png")),(square,square))
                                black_roi=pygame.transform.scale(pygame.image.load(os.path.join(path,"roi_noir.png")),(square,square))
                                black_reine=pygame.transform.scale(pygame.image.load(os.path.join(path,"reine_noir.png")),(square,square))
                                
                                #white pieces
                                white_cavalier=pygame.transform.scale(pygame.image.load(os.path.join(path,"cavalier_blanc.png")),(square,square))
                                white_fou=pygame.transform.scale(pygame.image.load(os.path.join(path,"fou_blanc.png")),(square,square))
                                white_pion=pygame.transform.scale(pygame.image.load(os.path.join(path,"pion_blanc.png")),(square,square))
                                white_tour=pygame.transform.scale(pygame.image.load(os.path.join(path,"tour_blanc.png")),(square,square))
                                white_roi=pygame.transform.scale(pygame.image.load(os.path.join(path,"roi_blanc.png")),(square,square))
                                white_reine=pygame.transform.scale(pygame.image.load(os.path.join(path,"reine_blanc.png")),(square,square))
                                




                                -
                                Edité par umfred 27 juillet 2021 à 15:26:28

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  27 juillet 2021 à 21:08:21 - Message modéré pour le motif suivant : Merci d'utiliser le bouton code du forum pour insérer votre code


                                    27 juillet 2021 à 21:11:08

                                    C'est le chemin vers l'image qui n'est pas bon.
                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Python c'est bon, mangez-en. 

                                      27 juillet 2021 à 21:15:04

                                      normalement il est bon comment es ce que je dois le coder?

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        27 juillet 2021 à 22:56:37

                                        Tu as printé le chemin pour voir si c'est celui attendu ?

                                        Sinon pourquoi pas juste mettre le chemin relatif ?

                                        -
                                        Edité par josmiley 27 juillet 2021 à 22:58:02

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Python c'est bon, mangez-en. 

                                          27 juillet 2021 à 23:03:59 - Message modéré pour le motif suivant : Merci d'utiliser le bouton code du forum pour insérer votre code


                                            27 juillet 2021 à 23:10:55

                                            Enlève os.path.etc... et passes directement le chemin relatif en argument de pygame.image.load

                                            pygame.image.load("chess_images/nomdufichier")

                                            -
                                            Edité par josmiley 27 juillet 2021 à 23:14:22

                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            Python c'est bon, mangez-en. 

                                              27 juillet 2021 à 23:15:48

                                              j'argument deja avec pygame.image.load et cela ne fonctionnent pas sans os.path
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                27 juillet 2021 à 23:28:57

                                                Ok, je passe la main à umfred.
                                                • Partager sur Facebook
                                                • Partager sur Twitter

                                                Python c'est bon, mangez-en. 

                                                  27 juillet 2021 à 23:30:53 - Message modéré pour le motif suivant : Merci d'utiliser le bouton code du forum pour insérer votre code


                                                    28 juillet 2021 à 11:53:21

                                                    ah bah en voila un message d'erreur..

                                                    et ça serait bien de mettre le code du coup et utilise le bouton </> pour l'insérer cette fois (mais bon il faudrait aussi une capture de l'organisation des fichiers, dont les fichiers images des pièces que tu as bien dans un répertoire du projet ? :-° )

                                                    Le seul truc dommage avec le projet de la vidéo c'est qu'il n'a pas mis de lien pour télécharger ses images des pièces (j'ai pas regardé dans les commentaires ceci-dit), il faut se débrouiller soit même (ce que j'ai fait en allant récupérer les images sur wiki)

                                                    -
                                                    Edité par umfred 28 juillet 2021 à 11:54:42

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      28 juillet 2021 à 15:15:12

                                                      umfred aurait tu un discord qu'on puisse discuter plus facilement du projet ?

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        28 juillet 2021 à 17:25:21

                                                        non, pas de discord. Mais il suffit de bien suivre le cours vidéo, il explique à moment le pourquoi et le comment du chemin.

                                                        Pour aider, sur ton PC, tu as un dossier "Jeu d'échec" qui contient main.py et le répertoire "Chess_game"

                                                        Le répertoire "Chess_game" contient le fichier constants.py et les répertoires "chess_images" et __pycache__

                                                        Le répertoire "chess_images" contient les images "bKN.png","wKN.png", etc

                                                        Comme le code est lancé depuis main.py, le chemin des images (donc la variable Path) est celui définit dans la vidéo "Chess_game/chess_images" (je préfère utiliser le / au \ pour définir le chemin)

                                                        Si tu as le message "file not found", c'est, à mon avis:

                                                        • soit que le programme se lance depuis constants.py: si c'est ça, en mettant Path="chess_images", ça devrait marcher, mais comme ce n'est pas ce qui est attendu, pour le fonctionnement du jeu, il faut, comme dit précédement, redéfinir min.py comme le fichier de démarrage du projet (je ne sais plus comment on fait sur VSCode, mais avec un clic droit sur le main.py ou en clic droit > propriétés sur le répertoire Chess, on doit pouvoir le faire)
                                                        • soit les fichiers images n'ont pas le même nom (ou sont absentes) et donc il faut corriger ça.

                                                        -
                                                        Edité par umfred 28 juillet 2021 à 17:25:45

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter

                                                        Premiere fois avec Pygame

                                                        × 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