Partage
  • Partager sur Facebook
  • Partager sur Twitter

[PyGame]Faire un menu déroulant à utiliser . . .\/

pendant la phase de jeu

Anonyme
    11 août 2014 à 14:08:05

    Bonjour voilà comme le dit le titre j'aimerai faire un menu déroulant pour un jeu PyGame et que lorsque l'on clique cela fonctionne car j'ai testé un code de détection de clique et il faut cliquer plus de 10 fois avant que ca marche.

    Merci.

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
    Anonyme
      11 août 2014 à 18:11:05

      Salut, il n'y a pas de raison que le clic soit foireux, sauf si ton programme n'est quasiment jamais dans la partie de détection des évenements...

      Au lieu de upper au bout d'une heure ( :-° ), tu devrais plutôt nous faire voir ton code non fonctionnel...

      -
      Edité par Anonyme 11 août 2014 à 18:11:25

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        11 août 2014 à 18:34:49

        Pour le clic ? -->

        La boucle est le plus interressant :

        while continuer:
        	#Limitation de vitesse de la boucle
        	#30 frames par secondes suffisent
        	pygame.time.Clock().tick(30)
        	#gestion des évenements
        	try:
        		if pas_de_partie:
        			menu_sound.play()
        			for event in pygame.event.get():
        				if event.type == MOUSEMOTION and event.buttons[0] == 1:
        					print("x = {0} y = {1}".format(x, y))
        					x = event.pos[0] #x
        					y = event.pos[1] #y
        					if x > 20 and x < 420 and y > 90 and y < 130:
        						dossier_personnage = "1/"
        						choisi_un_avatar   = True
        						#effacement de l'écran avant d'indiquer le choix :
        						affiche_tout_blit(fenetre)
        						fond_choisi.blit(croix_choix, (300,100))
        						Choix = "Guerrier    >"
        						perso_save.write(Choix)
        						save.write(dossier_personnage)
        					elif x > 20 and x < 420 and y > 160 and y < 200:
        						dossier_personnage = "2/"
        						choisi_un_avatar   = True
        						#effacement de l'écran avant d'indiquer le choix :
        						affiche_tout_blit(fenetre)
        						fond_choisi.blit(croix_choix, (300,170))
        						Choix = "Magicien    >"
        						perso_save.write(Choix)
        						save.write(dossier_personnage)
        					elif x > 20 and x < 420 and y > 230 and y < 270:
        						dossier_personnage = "3/"
        						choisi_un_avatar   = True
        						#effacement de l'écran avant d'indiquer le choix :
        						affiche_tout_blit(fenetre)
        						fond_choisi.blit(croix_choix, (300,240))
        						Choix = "Boulanger   >"
        						perso_save.write(Choix)
        						save.write(dossier_personnage)
        					elif x > 20 and x < 420 and y > 300 and y < 340:
        						dossier_personnage = "4/"
        						choisi_un_avatar   = True
        						#effacement de l'écran avant d'indiquer le choix :
        						affiche_tout_blit(fenetre)
        						fond_choisi.blit(croix_choix, (300,310))
        						Choix = "Paysan      >"
        						perso_save.write(Choix)
        						save.write(dossier_personnage)
        				#--------------------------------
        				if event.type == QUIT:
        					print("Tu nous quittes déjà ?")
        					continuer = 0
        				#--------------------------------
        				elif event.type == KEYDOWN and event.key == K_j:
        					if choisi_un_avatar is True:
        						#on joue
        						menu_sound.stop()
        						jouer.play()
        						print("Choix : {0}\nJeu = OK".format(Choix))
        						jeu_boubouilles(fenetre, choix, dossier_personnage)
        						jouer.stop()
        					elif choisi_un_avatar is False:
        						#on joue pas
        						menu_sound.stop()
        						erreur_jeu.play()
        						#pause
        						#on dit qu'il faut choisir un avatar !!
        						erreur_jeu.stop()
        						a_tente_de_jouer = True
        				#------------------------------
        				elif event.type == KEYUP:
        					if event.key == K_1 or event.key == K_KP1:
        						dossier_personnage = "1/"
        						choisi_un_avatar   = True
        						#effacement de l'écran avant d'indiquer le choix :
        						fond_choisi.blit(croix_choix, (300,100))
        						affiche_tout_blit(fenetre)
        						Choix = "Guerrier    >"
        						perso_save.write(Choix)
        						save.write(dossier_personnage)
        					#------------------------------
        					elif event.key == K_2 or event.key == K_KP2:
        						dossier_personnage = "2/"
        						choisi_un_avatar   = True
        						#effacement de l'écran avant d'indiquer le choix :
        						fond_choisi.blit(croix_choix, (300,170))
        						affiche_tout_blit(fenetre)
        						Choix = "Magicien    >"
        						perso_save.write(Choix)
        						save.write(dossier_personnage)
        					#------------------------------
        					elif event.key == K_3 or event.key == K_KP3:
        						dossier_personnage = "3/"
        						choisi_un_avatar   = True
        						#effacement de l'écran avant d'indiquer le choix :
        						fond_choisi.blit(croix_choix, (300,240))
        						affiche_tout_blit(fenetre)
        						Choix = "Boulanger   >"
        						perso_save.write(Choix)
        						save.write(dossier_personnage)
        					#------------------------------
        					elif event.key == K_4 or event.key == K_KP4:
        						dossier_personnage = "4/"
        						choisi_un_avatar   = True
        						#effacement de l'écran avant d'indiquer le choix :
        						fond_choisi.blit(croix_choix, (300,310))
        						affiche_tout_blit(fenetre)
        						Choix = "Paysan      >"
        						perso_save.write(Choix)
        						save.write(dossier_personnage)
        		elif pas_de_partie is not True:
        			for event in pygame.event.get():
        				if event.type == KEYDOWN and event.key == K_j:
        					#on joue
        					menu_sound.stop()
        					jouer.play()
        					dossier_personnage = machin_dossier_partie
        					print("Choix : {0}\nJeu = OK".format(Choix))
        					jeu_boubouilles(fenetre, choix, dossier_personnage)
        					jouer.stop()
        				elif event.type == KEYDOWN and event.key == K_c:
        					save.close()
        					perso_save.close()
        					os.remove("Parties/boubouilles.sav")
        					os.remove("Parties/dossier.sav")
        					pas_de_partie = True
        			#--------------------------------
        	except NameError as nom_err:
        		print(nom_err)
        	except TypeError as type_err:
        		print(type_err)
        
        	fenetre.blit(fond_choisi, (0,0))
        	if choisi_un_avatar is not True and a_tente_de_jouer is True and pas_de_partie:
        		debut = time.time()
        		fin   = time.time() + 4
        		print("Appel de la pause, erreur.")
        		faire_un_choix = font.render("Choisissez un personnage avant de commencer !", 1, (200,10,10))
        		fond_choisi.blit(faire_un_choix, (0, 450 / 2))
        		if debut != fin:
        			debut = time.time()
        	elif pas_de_partie:
        		affiche_tout_blit(fenetre)
        	elif pas_de_partie is not True:
        		affiche_perso_partie(fenetre)
        	pygame.display.flip()



        • Partager sur Facebook
        • Partager sur Twitter
          12 août 2014 à 18:04:52

          Un code "entier" serait bien, j'ai pas envie de me retaper tout les imports et les déclarations de variables.
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            12 août 2014 à 18:07:18

            En fait c'était à cause du fragmenteur de boucle (stop 30ms) et le clic ne passait pas.
            • Partager sur Facebook
            • Partager sur Twitter

            [PyGame]Faire un menu déroulant à utiliser . . .\/

            × 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