Partage
  • Partager sur Facebook
  • Partager sur Twitter

Lancement Pygame

fenêtre "Pygame window" s'ouvre et ne répond pas sur Mac OS

    19 juin 2020 à 12:55:57

    Bonjour,

    Je veins de commencer ave Pygame (je l'ai installé hier). Mais dès que je lance un programme (copié sur internet c'était juste pour être sur de l'avoir bien téléchargé), j'ai une fenêtre qui s'ouvre intitulée "Pygame window". cette page ne répond pas : je dois la quitté de force à chaque fois.

    ce que j'essaye de faire est de faire tourner un fichier audio mais pour ça il faudrait que j'arrive à utiliser Pygame de ce que j'ai compris.

    j'ai vu qu'il existe un autre forum daté de 2010 ou ce qui est conseillé est d'utiliser pygame.quit() à la fin. c'est ce que j'ai fait mais ca ne marche pas

    je suis sur spyder qui m'affiche plusieurs triangles jaunes "warning":

    - 1 à la deuxième ligne

    - plusieurs par le suite quand je fait appel aux touches du clavier

    je met le code ci-dessous:

    import pygame
    from pygame.locals import *
    
    pygame.init()
    fenetre = pygame.display.set_mode((300,300))
    
    generique = pygame.mixer.Sound("(1) Générique.wav")
    #latence = pygame.mixer.Sound("(2) Bravo vous avez gagné.wav")
    #question = pygame.mixer.Sound("(3) Question.wav")
    #reflexion = pygame.mixer.Sound("(4) Reflexion.wav")
    #vrai = pygame.mixer.Sound("(5) Gagné.wav")
    #faux = pygame.mixer.Sound("Faux.wav")
    #telephone = pygame.mixer.Sound("Telephone.wav")
    #fin = pygame.mixer.Sound("Fin.wav")
    
    continuer = 1
    joue = 0
    
    
    while continuer:
    	for event in pygame.event.get():
                    #Quitter
    		if event.type == QUIT:
    			continuer = 0
    		
    		#Lancer le son
    		if event.type == KEYDOWN and event.key == K_SPACE and joue == 0:
    			generique.play()
    			joue = 1
    		#Sortir de pause
    		if event.type == KEYDOWN and event.key == K_SPACE and joue == 1:
    			pygame.mixer.unpause()
    		#Mettre en pause
    		if event.type == KEYUP and event.key == K_SPACE:
    			pygame.mixer.pause()
    		#Stopper
    		if event.type == KEYDOWN and event.key == K_RETURN:
    			generique.stop()
    			joue = 0
    pygame.quit()

    merci d'avance pour vos réponses

    David

    -
    Edité par DavidBenichou2 19 juin 2020 à 12:58:06

    • Partager sur Facebook
    • Partager sur Twitter
      19 juin 2020 à 15:24:27

      Bonjour. De mon côté tout fonctionne. Je n'ai pas le fichier .wav évidemment mais la fenêtre s'affiche bien, et répond parfaitement. Si tu met des print dans chaque conditions, tu t'apercevra que le mixer change d'état très vite et très fréquemment à chaque appui de touche.
      • Partager sur Facebook
      • Partager sur Twitter

      typage structurel ftw

        19 juin 2020 à 16:09:41

        digammaF a écrit:

        Bonjour. De mon côté tout fonctionne. Je n'ai pas le fichier .wav évidemment mais la fenêtre s'affiche bien, et répond parfaitement. Si tu met des print dans chaque conditions, tu t'apercevra que le mixer change d'état très vite et très fréquemment à chaque appui de touche.


        "change d'état" c'est-à-dire?

        à vrai dire je ne m'aperçois de rien car le programme refuse de tourner. il m'ouvre une fenêtre intitulée "Pygame window" et celle-ci fait planter l'ordi

        je crois que mon problème est sur l'installation même de pygame

        je n'ai jamais utilisé ce module depuis que je l'ai téléchargé

        voici la fenêtre qui s'ouvre quand je lance :

        je précise que je ne connais pas ce logo d'application: c'est la première fois que je le vois

        je code sur spider que l'on voit trois applications sur la gauche

        • Partager sur Facebook
        • Partager sur Twitter
          19 juin 2020 à 16:53:02

          l'icône c'est normale. Cette page ne répond pas est une erreur rencontrée sous windows et mac lorsqu'il n'y a pas de boucle événementielle, mais ce n'est pas le cas ici.

          d'après le site:

          Some platforms require the pygame.mixerpygame module for loading and playing sounds module to be initialized after the display modules have initialized. The top level pygame.init() takes care of this automatically, but cannot pass any arguments to the mixer init. To solve this, mixer has a function pygame.mixer.pre_init() to set the proper defaults before the toplevel init is used.

          essaye un pygame.mixer.pre_init() avant le pygame.init() dans un premier temps, si ça ne marche toujours pas, ajoute pygame.mixer.init() après pygame.init().

          -
          Edité par josmiley 19 juin 2020 à 17:00:51

          • Partager sur Facebook
          • Partager sur Twitter

          Python c'est bon, mangez-en. 

            20 juin 2020 à 13:07:10

            j'ai fait ce que vous m'avez dit en essayant toutes les combinaisons d'ordre possible mais rien n'a changé

            c'est dommage j'y ai vraiment cru pendant un moment

            • Partager sur Facebook
            • Partager sur Twitter
              20 juin 2020 à 13:24:39

              Que donne le retour de pygame.init() ?
              • Partager sur Facebook
              • Partager sur Twitter

              Python c'est bon, mangez-en. 

                20 juin 2020 à 16:32:40

                le retour est (6,0)

                j'ai aussi l'impression que le programme tourne à l'infini quand je le lance mais il ne se passe rien (à part ma fameuse fenêtre qui s'ouvre)

                -
                Edité par DavidBenichou2 20 juin 2020 à 16:38:08

                • Partager sur Facebook
                • Partager sur Twitter
                  20 juin 2020 à 16:52:07

                  Essaye de mettre un pygame.event.pump() juste avant la boucle for. Peut-être que ça va réveiller le système, c'est comme si ton OS ne captait pas la boucle evenementielle.

                  -
                  Edité par josmiley 20 juin 2020 à 16:53:24

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Python c'est bon, mangez-en. 

                    20 juin 2020 à 16:54:17

                    toujours pareil

                    je viens de voir que je peux faire une mise à jour de spyder
                    je la fait et je réessaye après

                    nope mauvaise pioche:

                    j'ai fait toutes les mises à jours au cas ou mais ca n'a rien changé: toujours ma fenêtre et le kernel qui peine à redémarrer en prime

                    -
                    Edité par DavidBenichou2 20 juin 2020 à 18:01:19

                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 juin 2020 à 19:08:38

                      bonjour,

                      avez-vous d'autres idées?

                      j'ai essayé sur un autre ordinateur mais celui-ci n'arrivait même pas à détecter le module Pygame que je venais d'installer. je n'ai donc pas pu voir si ce que j'ai fait fonctionnait.

                      je suis pourtant certain que Pygame y a été installé car j'ai lancé un exemple qui fonctionnait parfaitement

                      au final je n'ai encore jamais réussi à entendre quelque chose grace à python sur aucun ordinateur

                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 juin 2020 à 19:23:39

                        quel OS ?

                        quel exemple fonctionne ?

                        • Partager sur Facebook
                        • Partager sur Twitter

                        Python c'est bon, mangez-en. 

                          22 juin 2020 à 20:50:56

                          j'ai entré ça sur le terminal après avoir installé Pygame :

                          python3 -m pygame.examples.aliens

                          ça marche parfaitement

                          • Partager sur Facebook
                          • Partager sur Twitter
                            22 juin 2020 à 22:32:45

                            tu as essayé un autre fichier audio ?
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Python c'est bon, mangez-en. 

                              23 juin 2020 à 13:35:50

                              oui

                              toujours le meme résultat

                              • Partager sur Facebook
                              • Partager sur Twitter
                                23 juin 2020 à 15:00:42

                                attends, y a une erreur ou c'est juste que la musique joue pas ?
                                • Partager sur Facebook
                                • Partager sur Twitter

                                Python c'est bon, mangez-en. 

                                  23 juin 2020 à 16:51:03

                                  je n'ai pas d'erreur:

                                  c'est juste que quelque soit la touche sur laquelle j'appuie il ne se passe rien

                                  et j'ai ma fameuse fenêtre qui s'ouvre mais ne répond pas

                                  le programme tourne à l'infini (mais ca c'est normal si j'ai bien compris)

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Anonyme
                                    23 juin 2020 à 17:32:07

                                    Bonjour,

                                    Tu dois avoir un problème avec ton .wav car chez moi ça fonctionne....

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      23 juin 2020 à 17:46:40

                                      tu penses que mon fichier n'est pas en .wav même si c'est écrit?
                                      ce serait bizarre, l'ordinateur me dit que le fichier est "Audio Waveform" 

                                      ce qui est sure c'est que le fichier tourne très bien avec l'application aperçu d'apple..

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Anonyme
                                        23 juin 2020 à 17:52:53

                                        Essaie en un autre, tu appuies bien sur la touche key_up pour jouer le son ??
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          23 juin 2020 à 19:37:45

                                          Essaye en maintenant la barre espace enfoncée ...
                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          Python c'est bon, mangez-en. 

                                            23 juin 2020 à 23:39:59

                                            déjà fait maintes fois --> rien

                                            j'ai aussi installé kite entre temps. je ne sais pas si ca peux servir dans mon cas mais j'en avais besoin pour un autre code. Peut être que ça va aider...

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              24 juin 2020 à 1:17:17

                                              Bonjour. Teste avec ceci:

                                              #Lancer le son
                                              		if event.type == KEYDOWN and event.key == K_SPACE and joue == 0:
                                              			#generique.play()
                                              			print("1")
                                              			joue = 1
                                              		#Sortir de pause
                                              		if event.type == KEYDOWN and event.key == K_SPACE and joue == 1:
                                              			print("2")
                                              			#pygame.mixer.unpause()
                                              		#Mettre en pause
                                              		if event.type == KEYUP and event.key == K_SPACE:
                                              			print("3")
                                              			#pygame.mixer.pause()
                                              		#Stopper
                                              		if event.type == KEYDOWN and event.key == K_RETURN:
                                              			print("4")
                                              			#generique.stop()
                                              			joue = 0

                                              Résultat, avec seulement un appui sur la barre espace:

                                              pygame 1.9.6
                                              Hello from the pygame community. https://www.pygame.org/contribute.html
                                              1
                                              2
                                              3

                                              C'est ce que j'expliquais, le mixer reviens trop vite dans l'état 'pause'. 

                                              -
                                              Edité par digammaF 24 juin 2020 à 1:23:13

                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              typage structurel ftw

                                                24 juin 2020 à 6:00:44

                                                tel quel le code joue la musique que si la barre espace reste enfoncée. Car dès que tu relâches, tu passes en pause. Hormis ceci, je ne vois pas d'erreur, si alien fonctionne ça devrait fonctionner aussi.

                                                -
                                                Edité par josmiley 24 juin 2020 à 12:54:01

                                                • Partager sur Facebook
                                                • Partager sur Twitter

                                                Python c'est bon, mangez-en. 

                                                  24 juin 2020 à 11:42:15

                                                  voila tout le problème, je crois que c'est le module Pygame qui est mal appelé sur spyder. en tout cas je suis certain qu'il est bien installé sur mon ordinateur.
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    24 juin 2020 à 22:32:03

                                                    Est-tu sûr que ce n'est pas en relation avec le volume ? Peut-être que pour je ne sais quelle raison il est à 0 ou très bas. J'imagine que tu as déjà lu le .wav pour t'assurer qu'il contient bel et bien de la musique.
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter

                                                    typage structurel ftw

                                                      29 juin 2020 à 20:52:25

                                                      bonjour,
                                                      excusez moi pour ce temps de réponse un peu long.

                                                      j'avoue que je ne suis sure de rien. j'ai essayé ce que vous avez préconisé mais mon retour n'est pas le même (je n'ai pas le 1,2,3 quand je change de programme comme vous):

                                                      dans cette fenêtre, je vois que le programme tourne à l'infini et quand je le force à quitter, il tente de se reconnecter au kernel mais il arrive en moyenne une fois sur deux qu'il n'y arrive pas donc je dois fermer et relancer spyder

                                                      en effet j'ai vérifié que le .wav contient bien de la musique et celle ci tourne très bien avec l'application "aperçu" d'apple mais toujours rien avec pygame

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        9 janvier 2021 à 20:06:06

                                                        Bonjour, 
                                                        le problème est que sur mac, si rien n'est affiché à l'écran, alors la fenêtre ne répond pas. Affiche juste une image avec le code si dessous et ça marchera.
                                                        background = pygame.image.load('chemin/image.png')

                                                         while continuer:

                                                        screen.blit(background, (0, 0))
                                                        pygame.display.flip()
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter

                                                        Lancement 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