Erreur python missing 1 required positional argument: 'event'
Résolu/Fermé
Antoine451833
Messages postés
47
Date d'inscription
vendredi 1 mai 2020
Statut
Membre
Dernière intervention
13 mai 2020
-
6 mai 2020 à 16:25
Antoine451833 Messages postés 47 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 13 mai 2020 - 13 mai 2020 à 13:15
Antoine451833 Messages postés 47 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 13 mai 2020 - 13 mai 2020 à 13:15
A voir également:
- Missing 1 required positional argument: 'event'
- Missing 1 required positional argument: 'b' - Meilleures réponses
- Missing 1 required positional argument python function - Meilleures réponses
- Python est introuvable. exúcutez sans argument pour procúder ó l - Forum Python
- Sport event 365 avis ✓ - Forum Consommation & Internet
- Consent required instagram - Forum Instagram
- Challenge required instagram - Forum Instagram
- Challenge required sur mon instagram - Forum Instagram
60 réponses
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
Modifié le 10 mai 2020 à 17:12
Modifié le 10 mai 2020 à 17:12
non !
comme je te le disais plus haut, si tout défile d'un coup, c'est parce que entre 2 manches
toucheA et toucheB ne sont pas vides, elles sont toujours égales à la valeur de la 1ere manche,
autrement dit la liste touches n'est pas vide
autrement dit, la fonction released(event) ne fait son pas boulot !
Et donc moi, je te le répète, je vide la liste après chaque manche et ça, ca marche !
Ca fait 3 fois que je te dis ça, quand même
comme je te le disais plus haut, si tout défile d'un coup, c'est parce que entre 2 manches
toucheA et toucheB ne sont pas vides, elles sont toujours égales à la valeur de la 1ere manche,
autrement dit la liste touches n'est pas vide
autrement dit, la fonction released(event) ne fait son pas boulot !
Et donc moi, je te le répète, je vide la liste après chaque manche et ça, ca marche !
if(touches != []): if(len(touches) == 2): touches_s = (''.join(touches)) error = False if (touches_s == 'ap' or touches_s == 'pa' or touches_s == 'am' or touches_s == 'ma'): t = 'Joueur 1 gagne !' pv2 -=1 elif(touches_s == 'qp' or touches_s == 'pq' or touches_s == 'qm' or touches_s == 'mq'): t = 'Joueur 2 gagne !' pv1 -=1 else: error = True if(not error): can1.create_text(10,90,text=t,anchor = NW, fill = 'red', font = ('helvetica', 15, 'bold')) score_affiche = True touches = [] #on vide la liste après la manche
Ca fait 3 fois que je te dis ça, quand même
Antoine451833
Messages postés
47
Date d'inscription
vendredi 1 mai 2020
Statut
Membre
Dernière intervention
13 mai 2020
10 mai 2020 à 17:54
10 mai 2020 à 17:54
ok ok, je pensais que ma fonction released(event) était fonctionelle, mince.
Et moi dans le code ça se mettrai ou ? Si je dis ça c'est parce que j'ai déjà essayé la ou pour moi ça devait être mais ça change rien.
Et moi dans le code ça se mettrai ou ? Si je dis ça c'est parce que j'ai déjà essayé la ou pour moi ça devait être mais ça change rien.
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
10 mai 2020 à 18:06
10 mai 2020 à 18:06
Ca parait évident : "je vide la liste après chaque manche "
Donc chez toi, ca donne ça:
enlève k1=k1 et k2=k2
Donc chez toi, ca donne ça:
if toucheB=="M" and toucheA=="A" : #j2 perd k2 += 1 pv2-=1 can1.itemconfig(image_pv2,image=score2[k2]) #Vider la liste touches = [] #bouton bou7 =Button(windows, text="",width=66,height=66,borderwidth=0,image=image_B4,command=pause)
enlève k1=k1 et k2=k2
Antoine451833
Messages postés
47
Date d'inscription
vendredi 1 mai 2020
Statut
Membre
Dernière intervention
13 mai 2020
Modifié le 10 mai 2020 à 20:13
Modifié le 10 mai 2020 à 20:13
Et bien je l'avais mis ici et toujours pareil, aucun changement. Code:
def scene2(): global pv1,pv2,score1,score2,joueur1,joueur2,touches,toucheA,toucheB,image_bob,image_rut,image_pv1,image_pv2,k1,k2 #JOUEUR1 if "A" in touches: can1.itemconfig(image_rut,image=joueur1[1]) toucheA="A" if "Q" in touches: can1.itemconfig(image_rut,image=joueur1[2]) toucheA="Q" #JOUEUR2 if "P" in touches: can1.itemconfig(image_bob,image=joueur2[1]) toucheB="P" if "M" in touches: can1.itemconfig(image_bob,image=joueur2[2]) toucheB="M" #SCORE1 if toucheA=="A" and toucheB=="M" : #j1 gagne k2 += 1 pv2-=1 can1.itemconfig(image_pv1,image=score1[k1]) if toucheA=="A" and toucheB=="P" : #j1 perd k1 += 1 pv1-=1 can1.itemconfig(image_pv2,image=score2[k2]) if toucheA=="Q" and toucheB=="P" : #j1 gagne k2 += 1 pv2-=1 can1.itemconfig(image_pv1,image=score1[k1]) if toucheA=="Q" and toucheB=="M" : #j1 perd k1 += 1 pv1-=1 can1.itemconfig(image_pv2,image=score2[k2]) #SCORE2 if toucheB=="P" and toucheA=="A" : #j2 gagne k1 += 1 pv1-=1 can1.itemconfig(image_pv1,image=score1[k1]) if toucheB=="P" and toucheA=="Q" : #j2 perd k2 += 1 pv2-=1 can1.itemconfig(image_pv2,image=score2[k2]) if toucheB=="M" and toucheA=="Q" : #j2 gagne k1 += 1 pv1-=1 can1.itemconfig(image_pv1,image=score1[k1]) if toucheB=="M" and toucheA=="A" : #j2 perd k2 += 1 pv2-=1 can1.itemconfig(image_pv2,image=score2[k2]) touches=[] #bouton bou7 =Button(windows, text="",width=66,height=66,borderwidth=0,image=image_B4,command=pause) bou7.place(x=663,y=42) can1.after(100,scene2)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
11 mai 2020 à 11:37
11 mai 2020 à 11:37
Bonjour Antoine,
C'est étrange quand même !
Dans le code que je t'ai envoyé ca marche et pas dans le tiens …
Pour debugger, il faudrait vraiment que tu me donnes tout le programme,
pour les images on se débrouillera
C'est étrange quand même !
Dans le code que je t'ai envoyé ca marche et pas dans le tiens …
Pour debugger, il faudrait vraiment que tu me donnes tout le programme,
pour les images on se débrouillera
Antoine451833
Messages postés
47
Date d'inscription
vendredi 1 mai 2020
Statut
Membre
Dernière intervention
13 mai 2020
Modifié le 11 mai 2020 à 11:54
Modifié le 11 mai 2020 à 11:54
Salut Phil,
pas de soucis je t'envoie tout, dis moi si t'as besoin de plus
Logiquement il faut juste regarder au niveau de #JEUX et au niveau de l'importation des images.
Si quelque chose n'est pas claire dit le moi
pas de soucis je t'envoie tout, dis moi si t'as besoin de plus
Logiquement il faut juste regarder au niveau de #JEUX et au niveau de l'importation des images.
Si quelque chose n'est pas claire dit le moi
#-----------------------------PARAMETRE NECESSAIRE------------------------------ from tkinter import * from tkinter.messagebox import * import pygame #fenetre graphique windows=Tk() windows.geometry('1400x800') windows.attributes("-fullscreen",0) windows.title("STREET KO") #importation des images MENU ET SOUS MENU fond1=PhotoImage(file="start.png") fond2=PhotoImage(file="menu.png") fond_D=PhotoImage(file="decort.png") fond_P=PhotoImage(file="pause.png") fond_H=PhotoImage(file="histoire.png") fond_R=PhotoImage(file="regles.png") image_B=PhotoImage(file="bouton.png") image_B2=PhotoImage(file="bouton2.png") image_B3=PhotoImage(file="bouton3.png") #importation des images DECOMPTE top3=PhotoImage(file="3.png") top2=PhotoImage(file="2.png") top1=PhotoImage(file="1.png") topF=PhotoImage(file="FIGHT.png") #importation des images PLAYERS image_B4=PhotoImage(file="bouton4.png") rut=PhotoImage(file="rut.png") Rpoint=PhotoImage(file="rut_point.png") Rpoint2=PhotoImage(file="rut_point2.png") bob=PhotoImage(file="bob.png") Bpoint=PhotoImage(file="bob_point.png") Bpied=PhotoImage(file="bob_pied.png") #importation des images SCORE RUT PVr10=PhotoImage(file="PV rut 10.png") PVr9=PhotoImage(file="PV rut 9.png") PVr8=PhotoImage(file="PV rut 8.png") PVr7=PhotoImage(file="PV rut 7.png") PVr6=PhotoImage(file="PV rut 6.png") PVr5=PhotoImage(file="PV rut 5.png") PVr4=PhotoImage(file="PV rut 4.png") PVr3=PhotoImage(file="PV rut 3.png") PVr2=PhotoImage(file="PV rut 2.png") PVr1=PhotoImage(file="PV rut 1.png") PVr0=PhotoImage(file="PV rut 0.png") #importation des images SCORE BOO PVb10=PhotoImage(file="PV bob 10.png") PVb9=PhotoImage(file="PV bob 9.png") PVb8=PhotoImage(file="PV bob 8.png") PVb7=PhotoImage(file="PV bob 7.png") PVb6=PhotoImage(file="PV bob 6.png") PVb5=PhotoImage(file="PV bob 5.png") PVb4=PhotoImage(file="PV bob 4.png") PVb3=PhotoImage(file="PV bob 3.png") PVb2=PhotoImage(file="PV bob 2.png") PVb1=PhotoImage(file="PV bob 1.png") PVb0=PhotoImage(file="PV bob 0.png") #-------------------------------PAGE D'OUVERTURE-------------------------------- def start(): can0=Canvas(windows,width=1400,height=800,bg="#17202a") can0.place(x=0,y=0) background0=can0.create_image(0,0,image=fond1,anchor="nw") can0.focus_set() can0.bind("<Key>",test_entree) def test_entree(event): touche=event.keysym if touche=="Return" : menu() #-------------------------------MENU ET SOUS MENU------------------------------- def menu(): global can1,bou1,bou2,bou3,bou5,background can1=Canvas(windows,width=1400,height=800,bg="#17202a") can1.place(x=0,y=0) background=can1.create_image(0,0,image=fond2,anchor="nw") can1.focus_set() #bouton bou1=Button(windows,text="Quitter",fg="#ffffff",width=250,height=50,image=image_B,compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=quitter) bou1.place(x=65,y=500) bou2=Button(windows,text="Règles",fg="#ffffff",width=250,height=50,image=image_B,compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=regles) bou2.place(x=65,y=240) bou3=Button(windows,text="Commencer",fg="#ffffff",width=250,height=50,image=image_B,compound=CENTER,borderwidth=0,font=('Fixedsys', '20'), command=switch) bou3.place(x=65,y=110) bou5=Button(windows,text="Histoire",fg="#ffffff",width=250,height=50,image=image_B,compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=histoire) bou5.place(x=65,y=370) #bool_hitoire==False #if bool_hitoire==False : #bou2=Button(windows,text="Règles",fg="#ffffff",width=220,height=40,image=bouton_gris,compound=CENTER,borderwidth=0,command=menu) #bou2.place(x=215,y=240) #else : #bou2=Button(windows,text="Règles",fg="#ffffff",width=220,height=40,image=image_B,compound=CENTER,borderwidth=0,command=regles) #bou2.place(x=215,y=240) def histoire(): global can1,background,bou4,bou6,ennonce1,bou8 reset() can1.itemconfig(background,image=fond_H) can1.focus_set() #texte text1="Il fut un temps où les guerres faisaient rage. Impac-" text2="tant la galaxie entière des millions de victimes ont" text3="été déplorés. L'objectif était toujours le même le dé-" text4="sir ardent d'être le plus puissant. Les dirigeants des" text5="quatre-coints de la galaxie en perdaient la raison." text6="C'est alors qu'un scientifique neutre créa deux comba-" text7="ttants hors-pairs, Rut et Bob. Tout juste sortis du" text8="four ils etaient déjà impliqués dans le combat. Alors" text9="dotés de capacités sans pareil, ils mirent fin à ces" text10="guerres et acquierent de nouveaux pouvoirs. Des années" text11="plus tard ils sont de nouveau reunis mais cette fois" text12="pour s'affronter. Le combat aura lieu à la plage 4586," text13="sous un soleil tropical où les deux compagnons ont par" text14="le passé mis un terme à ces guerres. L'issue du com" text15="-bat sera décisive pour le futur. Afin d'en connaître" text16="d'avantage veuillez prendre connaissance des règles." textefinal=text1+'\n'+text2+'\n'+text3+'\n'+text4+'\n'+text5+'\n'+text6+'\n'+text7+'\n'+text8+'\n'+text9+'\n'+text10+'\n'+text11+'\n'+text12+'\n'+text13+'\n'+text14+'\n'+text15+'\n'+text16 ennonce1=can1.create_text(895,340,text=textefinal,fill="white", font=('Fixedsys', '18')) #bouton bou4=Button(windows,text="Menu principal",fg="#ffffff",width=250,height=50,image=image_B, compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=menu) bou4.place(x=450,y=690) bou6=Button(windows,text="Règles",fg="#ffffff",width=250,height=50,image=image_B3, foreground="black", compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=reset_regles) bou6.place(x=790,y=690) bou8=Button(windows,text="règles.",fg="#ffffff",width=115,height=25,image=image_B2, compound=CENTER,borderwidth=0, font=('Fixedsys', '18'), command=reset_regles) bou8.place(x=1180,y=550) def regles(): global can1,background,bou7, bou9,ennonce2 reset() can1.itemconfig(background,image=fond_R) can1.focus_set() #texte text1="Suivant le personnage que vous in-" text2="carnez, Rut ou Bob, votre objectif" text3="est de terrasser votre adversaire." text4="Pour ce faire vous devez enchaîner" text5="les combinaisons de touche afin de" text6="gagner le combat. Ainsi il est con-" text7="seillé de prendre connaissance des" text8="commandes afin d'etablir une stra-" text9="tégie solide. L'enjeu de ce combat" text10="est de déterminer le futur époux" text11="de la princesse Sofya tant convoi-" text12="tée. Donner tout ce que vous avez" text13="pour chopper cette BOMBE !!!!!!!!!" textefinal2=text1+'\n'+text2+'\n'+text3+'\n'+text4+'\n'+text5+'\n'+text6+'\n'+text7+'\n'+text8+'\n'+text9+'\n'+text10+'\n'+text11+'\n'+text12+'\n'+text13 ennonce2=can1.create_text(370,365,text=textefinal2,fill="white", font=('Fixedsys', '18')) #bouton bou7=Button(windows,text="Menu principal",fg="#ffffff",width=250,height=50,image=image_B, compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=menu) bou7.place(x=450,y=690) bou9=Button(windows,text="Histoire",fg="#ffffff",width=250,height=50,image=image_B3, foreground="black", compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=reset_histoire) bou9.place(x=790,y=690) def quitter(): if askyesno("Fenêtre décisive", "Êtes-vous sûr de vouloir faire ça?"): windows.destroy() else: showinfo("Fenêtre du meilleur choix", "Vous avez bien raison!") #------------------------------------RESET-------------------------------------- def reset(): global bou1,bou2,bou3,bou5 bou1.place_forget() bou2.place_forget() bou3.place_forget() bou5.place_forget() def reset_histoire(): global bou7,bou9,can1,enonce2 bou7.place_forget() bou9.place_forget() can1.itemconfig(ennonce2,text="") histoire() def reset_regles(): global bou4,bou6, can1,enonce1, bou8 bou4.place_forget() bou6.place_forget() bou8.place_forget() can1.itemconfig(ennonce1,text="") regles() #------------------------------------JEUX--------------------------------------- #-----------------------------fonction avant jeux------------------------------- def song(): launched = True pygame.init() song = pygame.mixer.Sound("fight_song.wav") song.play() while launched: for even in pygame.event.get(): if even.type == pygame.QUIT: launched = False def switch(): global Pchoisi reset() #song() can1.itemconfig(background, image=mes_photos[Pchoisi]) Pchoisi += 1 if Pchoisi==5: can1.itemconfig(background,image=fond_D) scene() else : windows.after(10, switch) mes_photos = [top3,top2,top1,topF,fond_D] Pchoisi = 0 #-------------------------------scene de combat--------------------------------- def scene(): global pv1,pv2,score1,score2,touches,joueur1,joueur2,toucheB,toucheA,image_bob,image_rut,image_pv1,image_pv2,k1,k2 #attribution des joueurs/score a leurs photos joueur1=[rut,Rpoint,Rpoint2] joueur2=[bob,Bpoint,Bpied] score1=[PVr10,PVr9,PVr8,PVr7,PVr6,PVr5,PVr4,PVr3,PVr2,PVr1,PVr0] score2=[PVb10,PVb9,PVb8,PVb7,PVb6,PVb5,PVb4,PVb3,PVb2,PVb1,PVb0] #creation des images dans la fenetre graphique joueurs/score image_rut=can1.create_image(300,300,image=joueur1[0]) image_bob=can1.create_image(800,300,image=joueur2[0]) image_pv1=can1.create_image(329,65,image=score1[0]) image_pv2=can1.create_image(1062,63,image=score2[0]) #on associe à can1 un appui/relachement de touche can1.bind("<KeyPress>",pressed) can1.bind("<KeyRelease>",released) #definition des touches toucheA="" toucheB="" touches=[] can1.focus_set() #score pv1,pv2 = 10,10 k1,k2 = 0,0 scene2() def scene2(): global pv1,pv2,score1,score2,joueur1,joueur2,touches,toucheA,toucheB,image_bob,image_rut,image_pv1,image_pv2,k1,k2,pause #JOUEUR1 if "A" in touches: can1.itemconfig(image_rut,image=joueur1[1]) toucheA="A" if "Q" in touches: can1.itemconfig(image_rut,image=joueur1[2]) toucheA="Q" #JOUEUR2 if "P" in touches: can1.itemconfig(image_bob,image=joueur2[1]) toucheB="P" if "M" in touches: can1.itemconfig(image_bob,image=joueur2[2]) toucheB="M" #SCORE1 if toucheA=="A" and toucheB=="M" : #j1 gagne k2 += 1 pv2-=1 can1.itemconfig(image_pv1,image=score1[k1]) if toucheA=="A" and toucheB=="P" : #j1 perd k1 += 1 pv1-=1 can1.itemconfig(image_pv2,image=score2[k2]) if toucheA=="Q" and toucheB=="P" : #j1 gagne k2 += 1 pv2-=1 can1.itemconfig(image_pv1,image=score1[k1]) if toucheA=="Q" and toucheB=="M" : #j1 perd k1 += 1 pv1-=1 can1.itemconfig(image_pv2,image=score2[k2]) #SCORE2 if toucheB=="P" and toucheA=="A" : #j2 gagne k1 += 1 pv1-=1 can1.itemconfig(image_pv1,image=score1[k1]) if toucheB=="P" and toucheA=="Q" : #j2 perd k2 += 1 pv2-=1 can1.itemconfig(image_pv2,image=score2[k2]) if toucheB=="M" and toucheA=="Q" : #j2 gagne k1 += 1 pv1-=1 can1.itemconfig(image_pv1,image=score1[k1]) if toucheB=="M" and toucheA=="A" : #j2 perd k2 += 1 pv2-=1 can1.itemconfig(image_pv2,image=score2[k2]) touches=[] #bouton bou7 =Button(windows, text="",width=66,height=66,borderwidth=0,image=image_B4,command=pause) bou7.place(x=663,y=42) can1.after(100,scene2) def pressed(event): #on récupère la touche appuyée via t, on la met en majuscules et on l'ajoute a la liste touches global touches t = event.keysym.upper() if not t in touches: touches.append(t) def released(event): #on récupère la touche relaché via t, on la met en majuscules et on l'enlève de la liste touches global touches t = event.keysym.upper() if t in touches: touches.remove(t) def pause(): global pause,can1,background pass #--------------------------------LANCEMENT-------------------------------------- start() windows.mainloop()
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
Modifié le 11 mai 2020 à 12:04
Modifié le 11 mai 2020 à 12:04
parfait,
je vois que tu as 42 images, je sais déjà que PV rut 10.png sont les barres de pv que tu m'as fait voir plus haut, donc il en reste 20 que je ne connais pas, mais si ca se trouve je n'ai pas vraiment besoin de toutes pour faire marcher la mécanique du jeu, c'est juste de l'affichage
Je fais d'abord le point sur ces 20 images, et je te redis ...
je vois que tu as 42 images, je sais déjà que PV rut 10.png sont les barres de pv que tu m'as fait voir plus haut, donc il en reste 20 que je ne connais pas, mais si ca se trouve je n'ai pas vraiment besoin de toutes pour faire marcher la mécanique du jeu, c'est juste de l'affichage
Je fais d'abord le point sur ces 20 images, et je te redis ...
Antoine451833
Messages postés
47
Date d'inscription
vendredi 1 mai 2020
Statut
Membre
Dernière intervention
13 mai 2020
11 mai 2020 à 15:13
11 mai 2020 à 15:13
Je te précise quand même au cas ou a quoi correspond les images.
Celles dans #importation des images SCORE BOO sont les mêmes que PV rut 10.png mais dans l'autre sens, pour le joueur 2
Celles dans #importation des images PLAYERS sont les différents postions des joueurs.
Celles dans #importation des images DECOMPTE permettent de faire le décompte dans def switch().
Enfin celles dans #importation des images MENU ET SOUS MENU sont les arrière plans de chaque interfaces et de certains bouton.
Dit moi si t'as besoin de certaines photo pour bien comprendre.
Celles dans #importation des images SCORE BOO sont les mêmes que PV rut 10.png mais dans l'autre sens, pour le joueur 2
Celles dans #importation des images PLAYERS sont les différents postions des joueurs.
Celles dans #importation des images DECOMPTE permettent de faire le décompte dans def switch().
Enfin celles dans #importation des images MENU ET SOUS MENU sont les arrière plans de chaque interfaces et de certains bouton.
Dit moi si t'as besoin de certaines photo pour bien comprendre.
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
Modifié le 11 mai 2020 à 16:17
Modifié le 11 mai 2020 à 16:17
En fait, pour simplifier, j'ai commenté dans ton code toutes les images sauf celles des scores
(je me fiche pas mal d'afficher le fond d'écran et tout ça)
J'ai donc créé 22 images .png avec les noms que tu donnes (PV bob 10 ….)
Ca marche chez toi la page avec les boutons ?
Chez moi, ca donne ça:
Mais je vois que les boutons sont très gros: 250 x 50, j'ai donc enlevé ce paramètres et ca donne ça, mais quand j'appuie sur "commencer", l'écran se vide et j'ai beau appuyer sur a et p par exemple, il ne se passe rien, alors qu'on devrait afficher score2[1] : PV bob 9.png
(je me fiche pas mal d'afficher le fond d'écran et tout ça)
J'ai donc créé 22 images .png avec les noms que tu donnes (PV bob 10 ….)
Ca marche chez toi la page avec les boutons ?
Chez moi, ca donne ça:
Mais je vois que les boutons sont très gros: 250 x 50, j'ai donc enlevé ce paramètres et ca donne ça, mais quand j'appuie sur "commencer", l'écran se vide et j'ai beau appuyer sur a et p par exemple, il ne se passe rien, alors qu'on devrait afficher score2[1] : PV bob 9.png
Antoine451833
Messages postés
47
Date d'inscription
vendredi 1 mai 2020
Statut
Membre
Dernière intervention
13 mai 2020
11 mai 2020 à 18:12
11 mai 2020 à 18:12
Oui moi tout marche niquel.
Mais transmets moi ton e-mail ou de quoi communiquer en privé et je te passe tout le dossier, ça sera plus simple pour toi et il n'y aura pas de probleme.
Mais transmets moi ton e-mail ou de quoi communiquer en privé et je te passe tout le dossier, ça sera plus simple pour toi et il n'y aura pas de probleme.
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
Modifié le 11 mai 2020 à 18:30
Modifié le 11 mai 2020 à 18:30
Nickel ! (pas niquel :-) )
J'ai trouvé !
1_ Je suis sur un PC portable, donc les dimensions des fenêtres sont un peu grandes, j'ai donc fait une copie de ton code pour changer tout ça, et j'ai aussi changé la position des images montrant les scores pour que ça rentre
Je n'ai donc pas changé ton code original à ce niveau
2_ Les scores défilent dès le 1er appui, car dans la fonction scene2() tu as mélangé plein de trucs entre toucheA et toucheB, et entre image_pv1 avec score2, et vice-versa
Je t'ai donc modifié la fonction scene2() pour tester les cas correctement
J'ai aussi ajouté le test pour game over et maintenant, ca marche, tu peux récuperer le code complet:
J'ai trouvé !
1_ Je suis sur un PC portable, donc les dimensions des fenêtres sont un peu grandes, j'ai donc fait une copie de ton code pour changer tout ça, et j'ai aussi changé la position des images montrant les scores pour que ça rentre
Je n'ai donc pas changé ton code original à ce niveau
2_ Les scores défilent dès le 1er appui, car dans la fonction scene2() tu as mélangé plein de trucs entre toucheA et toucheB, et entre image_pv1 avec score2, et vice-versa
Je t'ai donc modifié la fonction scene2() pour tester les cas correctement
J'ai aussi ajouté le test pour game over et maintenant, ca marche, tu peux récuperer le code complet:
from tkinter import * from tkinter.messagebox import * #import pygame #fenetre graphique windows=Tk() windows.geometry('1400x800') windows.attributes("-fullscreen",0) windows.title("STREET KO") #importation des images MENU ET SOUS MENU fond1=PhotoImage(file="start.png") fond2=PhotoImage(file="menu.png") fond_D=PhotoImage(file="decort.png") fond_P=PhotoImage(file="pause.png") fond_H=PhotoImage(file="histoire.png") fond_R=PhotoImage(file="regles.png") image_B=PhotoImage(file="bouton.png") image_B2=PhotoImage(file="bouton2.png") image_B3=PhotoImage(file="bouton3.png") #importation des images DECOMPTE top3=PhotoImage(file="3.png") top2=PhotoImage(file="2.png") top1=PhotoImage(file="1.png") topF=PhotoImage(file="FIGHT.png") #importation des images PLAYERS image_B4=PhotoImage(file="bouton4.png") rut=PhotoImage(file="rut.png") Rpoint=PhotoImage(file="rut_point.png") Rpoint2=PhotoImage(file="rut_point2.png") bob=PhotoImage(file="bob.png") Bpoint=PhotoImage(file="bob_point.png") Bpied=PhotoImage(file="bob_pied.png") #importation des images SCORE RUT PVr10=PhotoImage(file="PV rut 10.png") PVr9=PhotoImage(file="PV rut 9.png") PVr8=PhotoImage(file="PV rut 8.png") PVr7=PhotoImage(file="PV rut 7.png") PVr6=PhotoImage(file="PV rut 6.png") PVr5=PhotoImage(file="PV rut 5.png") PVr4=PhotoImage(file="PV rut 4.png") PVr3=PhotoImage(file="PV rut 3.png") PVr2=PhotoImage(file="PV rut 2.png") PVr1=PhotoImage(file="PV rut 1.png") PVr0=PhotoImage(file="PV rut 0.png") #importation des images SCORE BOO PVb10=PhotoImage(file="PV bob 10.png") PVb9=PhotoImage(file="PV bob 9.png") PVb8=PhotoImage(file="PV bob 8.png") PVb7=PhotoImage(file="PV bob 7.png") PVb6=PhotoImage(file="PV bob 6.png") PVb5=PhotoImage(file="PV bob 5.png") PVb4=PhotoImage(file="PV bob 4.png") PVb3=PhotoImage(file="PV bob 3.png") PVb2=PhotoImage(file="PV bob 2.png") PVb1=PhotoImage(file="PV bob 1.png") PVb0=PhotoImage(file="PV bob 0.png") #-------------------------------PAGE D'OUVERTURE-------------------------------- def start(): can0=Canvas(windows,width=1400,height=800,bg="#17202a") can0.place(x=0,y=0) background0=can0.create_image(0,0,image=fond1,anchor="nw") can0.focus_set() can0.bind("<Key>",test_entree) def test_entree(event): touche=event.keysym if touche=="Return" : menu() #-------------------------------MENU ET SOUS MENU------------------------------- def menu(): global can1,bou1,bou2,bou3,bou5,background can1=Canvas(windows,width=1400,height=800,bg="#17202a") can1.place(x=0,y=0) background=can1.create_image(0,0,image=fond2,anchor="nw") can1.focus_set() #bouton bou1=Button(windows,text="Quitter",fg="#ffffff",width=250,height=50,image=image_B,compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=quitter) bou1.place(x=65,y=500) bou2=Button(windows,text="Règles",fg="#ffffff",width=250,height=50,image=image_B,compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=regles) bou2.place(x=65,y=240) bou3=Button(windows,text="Commencer",fg="#ffffff",width=250,height=50,image=image_B,compound=CENTER,borderwidth=0,font=('Fixedsys', '20'), command=switch) bou3.place(x=65,y=110) bou5=Button(windows,text="Histoire",fg="#ffffff",width=250,height=50,image=image_B,compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=histoire) bou5.place(x=65,y=370) #bool_hitoire==False #if bool_hitoire==False : #bou2=Button(windows,text="Règles",fg="#ffffff",width=220,height=40,image=bouton_gris,compound=CENTER,borderwidth=0,command=menu) #bou2.place(x=215,y=240) #else : #bou2=Button(windows,text="Règles",fg="#ffffff",width=220,height=40,image=image_B,compound=CENTER,borderwidth=0,command=regles) #bou2.place(x=215,y=240) def histoire(): global can1,background,bou4,bou6,ennonce1,bou8 reset() can1.itemconfig(background,image=fond_H) can1.focus_set() #texte textefinal=''' Il fut un temps où les guerres faisaient rage. Impactant la galaxie entière des millions de victimes furent déplorés. L'objectif était toujours le même le désir ardent d'être le plus puissant. Les dirigeants des quatre-coints de la galaxie en perdaient la raison. C'est alors qu'un scientifique neutre créa deux combattants hors-pair, Rut et Bob. Tout juste sortis du four ils etaient déjà impliqués dans le combat. Alors dotés de capacités sans pareil, ils mirent fin à ces guerres et acquerirent de nouveaux pouvoirs. Des années plus tard ils sont de nouveau reunis mais cette fois pour s'affronter. Le combat aura lieu à la plage 4586, sous un soleil tropical où les deux compagnons ont par le passé mis un terme à ces guerres. L'issue du combat sera décisive pour le futur. Afin d'en connaître davantage veuillez prendre connaissance des règles. ''' ennonce1=can1.create_text(895,340,text=textefinal,fill="white", font=('Fixedsys', '18')) #bouton bou4=Button(windows,text="Menu principal",fg="#ffffff",width=250,height=50,image=image_B, compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=menu) bou4.place(x=450,y=690) bou6=Button(windows,text="Règles",fg="#ffffff",width=250,height=50,image=image_B3, foreground="black", compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=reset_regles) bou6.place(x=790,y=690) bou8=Button(windows,text="règles.",fg="#ffffff",width=115,height=25,image=image_B2, compound=CENTER,borderwidth=0, font=('Fixedsys', '18'), command=reset_regles) bou8.place(x=1180,y=550) def regles(): global can1,background,bou7, bou9,ennonce2 reset() can1.itemconfig(background,image=fond_R) can1.focus_set() #texte textefinal = ''' Suivant le personnage que vous incarnez, Rut ou Bob, votre objectif est de terrasser votre adversaire. Pour ce faire vous devez enchaîner les combinaisons de touches afin de gagner le combat. Ainsi il est conseillé de prendre connaissance des commandes afin d'etablir une stratégie solide. L'enjeu de ce combat est de déterminer le futur époux de la princesse Sofya tant convoitée. Donnez tout ce que vous avez pour la séduire !!!!!!!!! ''' ennonce2=can1.create_text(370,365,text=textefinal,fill="white", font=('Fixedsys', '18')) #bouton bou7=Button(windows,text="Menu principal",fg="#ffffff",width=250,height=50,image=image_B, compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=menu) bou7.place(x=450,y=690) bou9=Button(windows,text="Histoire",fg="#ffffff",width=250,height=50,image=image_B3, foreground="black", compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=reset_histoire) bou9.place(x=790,y=690) def quitter(): if askyesno("Fenêtre décisive", "Êtes-vous sûr de vouloir faire ça?"): windows.destroy() else: showinfo("Fenêtre du meilleur choix", "Vous avez bien raison!") #------------------------------------RESET-------------------------------------- def reset(): global bou1,bou2,bou3,bou5 bou1.place_forget() bou2.place_forget() bou3.place_forget() bou5.place_forget() def reset_histoire(): global bou7,bou9,can1,enonce2 bou7.place_forget() bou9.place_forget() can1.itemconfig(ennonce2,text="") histoire() def reset_regles(): global bou4,bou6, can1,enonce1, bou8 bou4.place_forget() bou6.place_forget() bou8.place_forget() can1.itemconfig(ennonce1,text="") regles() #------------------------------------JEUX--------------------------------------- #-----------------------------fonction avant jeux------------------------------- #def song(): # launched = True # pygame.init() # song = pygame.mixer.Sound("fight_song.wav") # song.play() # while launched: # for even in pygame.event.get(): # if even.type == pygame.QUIT: # launched = False def switch(): global Pchoisi reset() #song() can1.itemconfig(background, image=mes_photos[Pchoisi]) Pchoisi += 1 if Pchoisi==5: can1.itemconfig(background,image=fond_D) scene() else : windows.after(10, switch) mes_photos = [top3,top2,top1,topF,fond_D] Pchoisi = 0 #-------------------------------scene de combat--------------------------------- def scene(): global pv1,pv2,score1,score2,touches,joueur1,joueur2,,image_bob,image_rut,image_pv1,image_pv2,k1,k2 #attribution des joueurs/score a leurs photos joueur1=[rut,Rpoint,Rpoint2] joueur2=[bob,Bpoint,Bpied] score1=[PVr10,PVr9,PVr8,PVr7,PVr6,PVr5,PVr4,PVr3,PVr2,PVr1,PVr0] score2=[PVb10,PVb9,PVb8,PVb7,PVb6,PVb5,PVb4,PVb3,PVb2,PVb1,PVb0] #creation des images dans la fenetre graphique joueurs/score image_rut=can1.create_image(300,300,image=joueur1[0]) image_bob=can1.create_image(800,300,image=joueur2[0]) image_pv1=can1.create_image(329,65,image=score1[0]) image_pv2=can1.create_image(1062,63,image=score2[0]) #on associe à can1 un appui/relachement de touche can1.bind("<KeyPress>",pressed) can1.bind("<KeyRelease>",released) #definition des touches touches=[] can1.focus_set() #score pv1,pv2 = 10,10 k1,k2 = 0,0 scene2() def scene2(): ''' Boucle de jeu ''' global pv1,pv2,score1,score2,joueur1,joueur2,touches,image_bob,image_rut global image_pv1,image_pv2,k1,k2,pause,can1 #JOUEUR1 if "A" in touches: can1.itemconfig(image_rut,image=joueur1[1]) if "Q" in touches: can1.itemconfig(image_rut,image=joueur1[2]) #JOUEUR2 if "P" in touches: can1.itemconfig(image_bob,image=joueur2[1]) if "M" in touches: can1.itemconfig(image_bob,image=joueur2[2]) if(touches != []): if(len(touches) == 2): touches_s = (''.join(touches)) if (touches_s == 'AP' or touches_s == 'PA' or touches_s == 'QM' or touches_s == 'MQ'): #j1 perd k1 += 1 pv1-=1 can1.itemconfig(image_pv1,image=score1[k1]) elif(touches_s == 'QP' or touches_s == 'PQ' or touches_s == 'AM' or touches_s == 'MA'): #j1 gagne k2 += 1 pv2-=1 can1.itemconfig(image_pv2,image=score2[k2]) touches = [] #bouton bou7 =Button(windows, text="",width=66,height=66,borderwidth=0,command=pause) bou7.place(x=663,y=42) #Game over ? if(pv1 == 0 or pv2 == 0): can1.create_text(150,150,text= 'Game over !!!',anchor = NW, fill = 'red', font = ('helvetica', 20, 'bold')) return can1.after(100,scene2) def pressed(event): #on récupère la touche appuyée via t, on la met en majuscules et on l'ajoute a la liste touches global touches t = event.keysym.upper() if not t in touches: touches.append(t) def released(event): #on récupère la touche relaché via t, on la met en majuscules et on l'enlève de la liste touches global touches t = event.keysym.upper() if t in touches: touches.remove(t) def pause(): global pause,can1,background pass start() windows.mainloop()
Antoine451833
Messages postés
47
Date d'inscription
vendredi 1 mai 2020
Statut
Membre
Dernière intervention
13 mai 2020
Modifié le 11 mai 2020 à 19:25
Modifié le 11 mai 2020 à 19:25
Merci pour ta réponse.
Ton code fonctionne parfaitement, c'est nickel :). Mais c'est dommage d’être obligé d’enfoncer la touche en même temps, si les joueurs jouent chacun leur tour il ne prend pas en compte la saisie. Mais sinon appart ça c'est top (j'ai bien vu t'as modification pour le texte et j’étudierais ça après).
Cependant j'aimerai que mon code soit fonctionnel, pour pouvoir comprendre même si après j'utiliserai surement le tient qui parait plus épuré. Donc j'ai corrigé l'erreur que tu as soulevé, maintenant entre toucheA et toucheB, et entre image_pv1 avec score2 il n'y plus de probleme d’après moi.
Malgré toujours le même probleme, la barre de vie défile donc je te renvoi la totalité du code même si il n'y a que scene2() qui a été modifié.
Ton code fonctionne parfaitement, c'est nickel :). Mais c'est dommage d’être obligé d’enfoncer la touche en même temps, si les joueurs jouent chacun leur tour il ne prend pas en compte la saisie. Mais sinon appart ça c'est top (j'ai bien vu t'as modification pour le texte et j’étudierais ça après).
Cependant j'aimerai que mon code soit fonctionnel, pour pouvoir comprendre même si après j'utiliserai surement le tient qui parait plus épuré. Donc j'ai corrigé l'erreur que tu as soulevé, maintenant entre toucheA et toucheB, et entre image_pv1 avec score2 il n'y plus de probleme d’après moi.
Malgré toujours le même probleme, la barre de vie défile donc je te renvoi la totalité du code même si il n'y a que scene2() qui a été modifié.
#-----------------------------PARAMETRE NECESSAIRE------------------------------ from tkinter import * from tkinter.messagebox import * import pygame #fenetre graphique windows=Tk() windows.geometry('1400x800') windows.attributes("-fullscreen",0) windows.title("STREET KO") #importation des images MENU ET SOUS MENU fond1=PhotoImage(file="start.png") fond2=PhotoImage(file="menu.png") fond_D=PhotoImage(file="decort.png") fond_P=PhotoImage(file="pause.png") fond_H=PhotoImage(file="histoire.png") fond_R=PhotoImage(file="regles.png") image_B=PhotoImage(file="bouton.png") image_B2=PhotoImage(file="bouton2.png") image_B3=PhotoImage(file="bouton3.png") #importation des images DECOMPTE top3=PhotoImage(file="3.png") top2=PhotoImage(file="2.png") top1=PhotoImage(file="1.png") topF=PhotoImage(file="FIGHT.png") #importation des images PLAYERS image_B4=PhotoImage(file="bouton4.png") rut=PhotoImage(file="rut.png") Rpoint=PhotoImage(file="rut_point.png") Rpoint2=PhotoImage(file="rut_point2.png") bob=PhotoImage(file="bob.png") Bpoint=PhotoImage(file="bob_point.png") Bpied=PhotoImage(file="bob_pied.png") #importation des images SCORE RUT PVr10=PhotoImage(file="PV rut 10.png") PVr9=PhotoImage(file="PV rut 9.png") PVr8=PhotoImage(file="PV rut 8.png") PVr7=PhotoImage(file="PV rut 7.png") PVr6=PhotoImage(file="PV rut 6.png") PVr5=PhotoImage(file="PV rut 5.png") PVr4=PhotoImage(file="PV rut 4.png") PVr3=PhotoImage(file="PV rut 3.png") PVr2=PhotoImage(file="PV rut 2.png") PVr1=PhotoImage(file="PV rut 1.png") PVr0=PhotoImage(file="PV rut 0.png") #importation des images SCORE BOO PVb10=PhotoImage(file="PV bob 10.png") PVb9=PhotoImage(file="PV bob 9.png") PVb8=PhotoImage(file="PV bob 8.png") PVb7=PhotoImage(file="PV bob 7.png") PVb6=PhotoImage(file="PV bob 6.png") PVb5=PhotoImage(file="PV bob 5.png") PVb4=PhotoImage(file="PV bob 4.png") PVb3=PhotoImage(file="PV bob 3.png") PVb2=PhotoImage(file="PV bob 2.png") PVb1=PhotoImage(file="PV bob 1.png") PVb0=PhotoImage(file="PV bob 0.png") #-------------------------------PAGE D'OUVERTURE-------------------------------- def start(): can0=Canvas(windows,width=1400,height=800,bg="#17202a") can0.place(x=0,y=0) background0=can0.create_image(0,0,image=fond1,anchor="nw") can0.focus_set() can0.bind("<Key>",test_entree) def test_entree(event): touche=event.keysym if touche=="Return" : menu() #-------------------------------MENU ET SOUS MENU------------------------------- def menu(): global can1,bou1,bou2,bou3,bou5,background can1=Canvas(windows,width=1400,height=800,bg="#17202a") can1.place(x=0,y=0) background=can1.create_image(0,0,image=fond2,anchor="nw") can1.focus_set() #bouton bou1=Button(windows,text="Quitter",fg="#ffffff",width=250,height=50,image=image_B,compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=quitter) bou1.place(x=65,y=500) bou2=Button(windows,text="Règles",fg="#ffffff",width=250,height=50,image=image_B,compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=regles) bou2.place(x=65,y=240) bou3=Button(windows,text="Commencer",fg="#ffffff",width=250,height=50,image=image_B,compound=CENTER,borderwidth=0,font=('Fixedsys', '20'), command=switch) bou3.place(x=65,y=110) bou5=Button(windows,text="Histoire",fg="#ffffff",width=250,height=50,image=image_B,compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=histoire) bou5.place(x=65,y=370) #bool_hitoire==False #if bool_hitoire==False : #bou2=Button(windows,text="Règles",fg="#ffffff",width=220,height=40,image=bouton_gris,compound=CENTER,borderwidth=0,command=menu) #bou2.place(x=215,y=240) #else : #bou2=Button(windows,text="Règles",fg="#ffffff",width=220,height=40,image=image_B,compound=CENTER,borderwidth=0,command=regles) #bou2.place(x=215,y=240) def histoire(): global can1,background,bou4,bou6,ennonce1,bou8 reset() can1.itemconfig(background,image=fond_H) can1.focus_set() #texte text1="Il fut un temps où les guerres faisaient rage. Impac-" text2="tant la galaxie entière des millions de victimes ont" text3="été déplorés. L'objectif était toujours le même le dé-" text4="sir ardent d'être le plus puissant. Les dirigeants des" text5="quatre-coints de la galaxie en perdaient la raison." text6="C'est alors qu'un scientifique neutre créa deux comba-" text7="ttants hors-pairs, Rut et Bob. Tout juste sortis du" text8="four ils etaient déjà impliqués dans le combat. Alors" text9="dotés de capacités sans pareil, ils mirent fin à ces" text10="guerres et acquierent de nouveaux pouvoirs. Des années" text11="plus tard ils sont de nouveau reunis mais cette fois" text12="pour s'affronter. Le combat aura lieu à la plage 4586," text13="sous un soleil tropical où les deux compagnons ont par" text14="le passé mis un terme à ces guerres. L'issue du com" text15="-bat sera décisive pour le futur. Afin d'en connaître" text16="d'avantage veuillez prendre connaissance des règles." textefinal=text1+'\n'+text2+'\n'+text3+'\n'+text4+'\n'+text5+'\n'+text6+'\n'+text7+'\n'+text8+'\n'+text9+'\n'+text10+'\n'+text11+'\n'+text12+'\n'+text13+'\n'+text14+'\n'+text15+'\n'+text16 ennonce1=can1.create_text(895,340,text=textefinal,fill="white", font=('Fixedsys', '18')) #bouton bou4=Button(windows,text="Menu principal",fg="#ffffff",width=250,height=50,image=image_B, compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=menu) bou4.place(x=450,y=690) bou6=Button(windows,text="Règles",fg="#ffffff",width=250,height=50,image=image_B3, foreground="black", compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=reset_regles) bou6.place(x=790,y=690) bou8=Button(windows,text="règles.",fg="#ffffff",width=115,height=25,image=image_B2, compound=CENTER,borderwidth=0, font=('Fixedsys', '18'), command=reset_regles) bou8.place(x=1180,y=550) def regles(): global can1,background,bou7, bou9,ennonce2 reset() can1.itemconfig(background,image=fond_R) can1.focus_set() #texte text1="Suivant le personnage que vous in-" text2="carnez, Rut ou Bob, votre objectif" text3="est de terrasser votre adversaire." text4="Pour ce faire vous devez enchaîner" text5="les combinaisons de touche afin de" text6="gagner le combat. Ainsi il est con-" text7="seillé de prendre connaissance des" text8="commandes afin d'etablir une stra-" text9="tégie solide. L'enjeu de ce combat" text10="est de déterminer le futur époux" text11="de la princesse Sofya tant convoi-" text12="tée. Donner tout ce que vous avez" text13="pour chopper cette BOMBE !!!!!!!!!" textefinal2=text1+'\n'+text2+'\n'+text3+'\n'+text4+'\n'+text5+'\n'+text6+'\n'+text7+'\n'+text8+'\n'+text9+'\n'+text10+'\n'+text11+'\n'+text12+'\n'+text13 ennonce2=can1.create_text(370,365,text=textefinal2,fill="white", font=('Fixedsys', '18')) #bouton bou7=Button(windows,text="Menu principal",fg="#ffffff",width=250,height=50,image=image_B, compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=menu) bou7.place(x=450,y=690) bou9=Button(windows,text="Histoire",fg="#ffffff",width=250,height=50,image=image_B3, foreground="black", compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=reset_histoire) bou9.place(x=790,y=690) def quitter(): if askyesno("Fenêtre décisive", "Êtes-vous sûr de vouloir faire ça?"): windows.destroy() else: showinfo("Fenêtre du meilleur choix", "Vous avez bien raison!") #------------------------------------RESET-------------------------------------- def reset(): global bou1,bou2,bou3,bou5 bou1.place_forget() bou2.place_forget() bou3.place_forget() bou5.place_forget() def reset_histoire(): global bou7,bou9,can1,enonce2 bou7.place_forget() bou9.place_forget() can1.itemconfig(ennonce2,text="") histoire() def reset_regles(): global bou4,bou6, can1,enonce1, bou8 bou4.place_forget() bou6.place_forget() bou8.place_forget() can1.itemconfig(ennonce1,text="") regles() #------------------------------------JEUX--------------------------------------- #-----------------------------fonction avant jeux------------------------------- def song(): launched = True pygame.init() song = pygame.mixer.Sound("fight_song.wav") song.play() while launched: for even in pygame.event.get(): if even.type == pygame.QUIT: launched = False def switch(): global Pchoisi reset() #song() can1.itemconfig(background, image=mes_photos[Pchoisi]) Pchoisi += 1 if Pchoisi==5: can1.itemconfig(background,image=fond_D) scene() else : windows.after(10, switch) mes_photos = [top3,top2,top1,topF,fond_D] Pchoisi = 0 #-------------------------------scene de combat--------------------------------- def scene(): global pv1,pv2,score1,score2,touches,joueur1,joueur2,toucheB,toucheA,image_bob,image_rut,image_pv1,image_pv2,k1,k2 #attribution des joueurs/score a leurs photos joueur1=[rut,Rpoint,Rpoint2] joueur2=[bob,Bpoint,Bpied] score1=[PVr10,PVr9,PVr8,PVr7,PVr6,PVr5,PVr4,PVr3,PVr2,PVr1,PVr0] score2=[PVb10,PVb9,PVb8,PVb7,PVb6,PVb5,PVb4,PVb3,PVb2,PVb1,PVb0] #creation des images dans la fenetre graphique joueurs/score image_rut=can1.create_image(300,300,image=joueur1[0]) image_bob=can1.create_image(800,300,image=joueur2[0]) image_pv1=can1.create_image(329,65,image=score1[0]) image_pv2=can1.create_image(1062,63,image=score2[0]) #on associe à can1 un appui/relachement de touche can1.bind("<KeyPress>",pressed) can1.bind("<KeyRelease>",released) #definition des touches toucheA="" toucheB="" touches=[] can1.focus_set() #score pv1,pv2 = 10,10 k1,k2 = 0,0 scene2() def scene2(): global pv1,pv2,score1,score2,joueur1,joueur2,touches,toucheA,toucheB,image_bob,image_rut,image_pv1,image_pv2,k1,k2,pause #JOUEUR1 if "A" in touches: can1.itemconfig(image_rut,image=joueur1[1]) toucheA="A" if "Q" in touches: can1.itemconfig(image_rut,image=joueur1[2]) toucheA="Q" #JOUEUR2 if "P" in touches: can1.itemconfig(image_bob,image=joueur2[1]) toucheB="P" if "M" in touches: can1.itemconfig(image_bob,image=joueur2[2]) toucheB="M" #SCORE1 if toucheA=="A" and toucheB=="M" : #j1 gagne k2 += 1 pv2-=1 can1.itemconfig(image_pv2,image=score2[k2]) if toucheA=="A" and toucheB=="P" : #j1 perd k1 += 1 pv1-=1 can1.itemconfig(image_pv1,image=score1[k1]) if toucheA=="Q" and toucheB=="P" : #j1 gagne k2 += 1 pv2-=1 can1.itemconfig(image_pv2,image=score2[k2]) if toucheA=="Q" and toucheB=="M" : #j1 perd k1 += 1 pv1-=1 can1.itemconfig(image_pv1,image=score1[k1]) #SCORE2 if toucheB=="P" and toucheA=="A" : #j2 gagne k1 += 1 pv1-=1 can1.itemconfig(image_pv1,image=score1[k1]) if toucheB=="P" and toucheA=="Q" : #j2 perd k2 += 1 pv2-=1 can1.itemconfig(image_pv2,image=score2[k2]) if toucheB=="M" and toucheA=="Q" : #j2 gagne k1 += 1 pv1-=1 can1.itemconfig(image_pv1,image=score1[k1]) if toucheB=="M" and toucheA=="A" : #j2 perd k2 += 1 pv2-=1 can1.itemconfig(image_pv2,image=score2[k2]) touches=[] #bouton bou7 =Button(windows, text="",width=66,height=66,borderwidth=0,image=image_B4,command=pause) bou7.place(x=663,y=42) can1.after(100,scene2) def pressed(event): #on récupère la touche appuyée via t, on la met en majuscules et on l'ajoute a la liste touches global touches t = event.keysym.upper() if not t in touches: touches.append(t) def released(event): #on récupère la touche relaché via t, on la met en majuscules et on l'enlève de la liste touches global touches t = event.keysym.upper() if t in touches: touches.remove(t) def pause(): global pause,can1,background pass #--------------------------------LANCEMENT-------------------------------------- start() windows.mainloop()
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
12 mai 2020 à 10:40
12 mai 2020 à 10:40
Bonjour Antoine,
Non, en fait tu n'as pas corrigé tous les bugs dans ta batterie de tests
Regarde plus attentivement ...
Je vois que ça ne te saute pas aux yeux tout de suite: c'est normal, et on en revient toujours à ce que je dis depuis le début, plus un code est simple, clair, concis, et mieux on peut le comprendre et le debugger
Pourquoi 8 tests if pour trouver le gagnant ?
(tu aimes bien la complication, on dirait :-) )
On est d'accord qu'il n'y a que 2 cas possibles:
joueur 1 gagne (joueur 2 perd, c'est le même cas)
joueur 2 gagne (joueur 1 perd, c'est le même cas)
Regarde mon code: 2 tests if pour les 2 cas, seulement, et ça suffit
pour que ce soit plus simple à tester, je commence par convertir la liste touches en 1 chaine de caractères : touches_s, donc ['A', 'M'] devient 'AM' par exemple
Et grâce à la fonction or, je teste tout en une seule ligne:
if (touches_s == 'AP' or touches_s == 'PA' or ..............
Pas besoin de faire 8 tests if, donc moins de sources d'erreurs
Pendant que j'y suis, j'ai oublié d'enlever les lignes suivantes:
can1.bind("<KeyRelease>",released)
et
def released(event):
#on récupère la touche relaché via t, on la met en majuscules et on l'enlève de la liste touches
global touches
t = event.keysym.upper()
if t in touches:
touches.remove(t)
Nous savons maintenant tous les deux qu'elles ne servent à rien et de plus elles ne fonctionnent pas
Tu défini un Canvas dans start() et un autre dans menu(): le 2eme ne sert à rien, il suffit d'utiliser toujours le 1er
Je te laisse scruter attentivement ta fonction scene2() .....
Non, en fait tu n'as pas corrigé tous les bugs dans ta batterie de tests
Regarde plus attentivement ...
Je vois que ça ne te saute pas aux yeux tout de suite: c'est normal, et on en revient toujours à ce que je dis depuis le début, plus un code est simple, clair, concis, et mieux on peut le comprendre et le debugger
Pourquoi 8 tests if pour trouver le gagnant ?
(tu aimes bien la complication, on dirait :-) )
On est d'accord qu'il n'y a que 2 cas possibles:
joueur 1 gagne (joueur 2 perd, c'est le même cas)
joueur 2 gagne (joueur 1 perd, c'est le même cas)
Regarde mon code: 2 tests if pour les 2 cas, seulement, et ça suffit
pour que ce soit plus simple à tester, je commence par convertir la liste touches en 1 chaine de caractères : touches_s, donc ['A', 'M'] devient 'AM' par exemple
Et grâce à la fonction or, je teste tout en une seule ligne:
if (touches_s == 'AP' or touches_s == 'PA' or ..............
Pas besoin de faire 8 tests if, donc moins de sources d'erreurs
Pendant que j'y suis, j'ai oublié d'enlever les lignes suivantes:
can1.bind("<KeyRelease>",released)
et
def released(event):
#on récupère la touche relaché via t, on la met en majuscules et on l'enlève de la liste touches
global touches
t = event.keysym.upper()
if t in touches:
touches.remove(t)
Nous savons maintenant tous les deux qu'elles ne servent à rien et de plus elles ne fonctionnent pas
Tu défini un Canvas dans start() et un autre dans menu(): le 2eme ne sert à rien, il suffit d'utiliser toujours le 1er
Je te laisse scruter attentivement ta fonction scene2() .....
Antoine451833
Messages postés
47
Date d'inscription
vendredi 1 mai 2020
Statut
Membre
Dernière intervention
13 mai 2020
12 mai 2020 à 12:46
12 mai 2020 à 12:46
Salut Phil,
J'ai corrigé le beug, mais maintenant les barres de vie partent 2 par 2. Mais je suis quand même arrive a ce que je voulais c'est a dire debeugé le défilement de la barre de vie.
Je me suis aussi intéressé au tient et je me rends bien compte qu'on cherche a faire la même chose mais que tu y est arrivé de manière bien plus explicite et épuré. J'ai compris le mécanisme de ton code et c'est vrai qu'on gagne de l'espace, il est bien plus performant, et facile a comprendre quand on s'y intéresse. C’était juste le temps que je comprenne les détails de ton code.
Je t’envoie donc les lignes que j'ai rajouté au mien mais juste pour t'informer ne t'en fait pas: (ligne 15)
Il me reste plus qu'a gérer le son et essayer de trouver une fonction pause qui remplit toutes mes attentes et mon jeux sera fini.
Si tu souhaites encore m'aider sur ce point c'est avec plaisir mais sinon pas de soucis, tu m'as beaucoup aider et on a enfin résolu le probleme principale donc je mettrai le sujet en "résolu".
Encore merci pour ton aide :)
J'ai corrigé le beug, mais maintenant les barres de vie partent 2 par 2. Mais je suis quand même arrive a ce que je voulais c'est a dire debeugé le défilement de la barre de vie.
Je me suis aussi intéressé au tient et je me rends bien compte qu'on cherche a faire la même chose mais que tu y est arrivé de manière bien plus explicite et épuré. J'ai compris le mécanisme de ton code et c'est vrai qu'on gagne de l'espace, il est bien plus performant, et facile a comprendre quand on s'y intéresse. C’était juste le temps que je comprenne les détails de ton code.
Je t’envoie donc les lignes que j'ai rajouté au mien mais juste pour t'informer ne t'en fait pas: (ligne 15)
#JOUEUR1 if "A" in touches: can1.itemconfig(image_rut,image=joueur1[1]) toucheA="A" if "Q" in touches: can1.itemconfig(image_rut,image=joueur1[2]) toucheA="Q" #JOUEUR2 if "P" in touches: can1.itemconfig(image_bob,image=joueur2[1]) toucheB="P" if "M" in touches: can1.itemconfig(image_bob,image=joueur2[2]) toucheB="M" if "A" not in touches and "Q" not in touches: toucheA="" if "P" not in touches and "M" not in touches: toucheB=""
Il me reste plus qu'a gérer le son et essayer de trouver une fonction pause qui remplit toutes mes attentes et mon jeux sera fini.
Si tu souhaites encore m'aider sur ce point c'est avec plaisir mais sinon pas de soucis, tu m'as beaucoup aider et on a enfin résolu le probleme principale donc je mettrai le sujet en "résolu".
Encore merci pour ton aide :)
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
Modifié le 12 mai 2020 à 13:55
Modifié le 12 mai 2020 à 13:55
Les barres partent 2 par 2 ?
Ce n'est pas encore ça, le bug n'est pas corrigé
Si tu regardes bien encore, tu verras que tu as fait des trucs en double:
if toucheA=="A" and toucheB=="M" :
c'est la même chose que:
if toucheB=="M" and toucheA=="A" :
Tu as juste inversé les termes au lieu d'inverser les lettres dans les variables !
Au fait tu disais : "dommage d’être obligé d’enfoncer la touche en même temps"
En fait si on augment un peu le temps dans la boucle scene(), ca permet un léger décalage
entre les appuis : can1.after(1000,scene2)
N'oublie pas le game over !
Pour moi, le code idéal, si ca t'intéresse, serait comme ça:
les fonctions en 1er
la définition de l'interface et des images ensuite, hors fonctions
note les 2 variables HAUTEUR et LARGEUR permettant de changer d'un coup la taille de la
fenêtre principale et du canvas, et il n'y a plus qu'un seul canvas, c'est suffisant
Si tu veux encore peaufiner le truc:
En général, il faut éviter les variables globales, c'est source d'erreurs, il vaut mieux faire de la
programmation objet, sans aller jusque là, en général, je fais comme ça:
Je définis une classe G qui est la classe des variables globales:
Du coup, plus besoin d'écrire global val, msg, ... dans toutes les fonctions, au risque d'en oublier
Voila, je te laisse méditer tout ça …
Ce n'est pas encore ça, le bug n'est pas corrigé
Si tu regardes bien encore, tu verras que tu as fait des trucs en double:
if toucheA=="A" and toucheB=="M" :
c'est la même chose que:
if toucheB=="M" and toucheA=="A" :
Tu as juste inversé les termes au lieu d'inverser les lettres dans les variables !
Au fait tu disais : "dommage d’être obligé d’enfoncer la touche en même temps"
En fait si on augment un peu le temps dans la boucle scene(), ca permet un léger décalage
entre les appuis : can1.after(1000,scene2)
N'oublie pas le game over !
Pour moi, le code idéal, si ca t'intéresse, serait comme ça:
les fonctions en 1er
la définition de l'interface et des images ensuite, hors fonctions
note les 2 variables HAUTEUR et LARGEUR permettant de changer d'un coup la taille de la
fenêtre principale et du canvas, et il n'y a plus qu'un seul canvas, c'est suffisant
Si tu veux encore peaufiner le truc:
En général, il faut éviter les variables globales, c'est source d'erreurs, il vaut mieux faire de la
programmation objet, sans aller jusque là, en général, je fais comme ça:
Je définis une classe G qui est la classe des variables globales:
class G(): ''' 'Variables globales''' val = '10' msg = 'fin' def test() print(G.val) print(G.msg)
Du coup, plus besoin d'écrire global val, msg, ... dans toutes les fonctions, au risque d'en oublier
Voila, je te laisse méditer tout ça …
# -*- coding:UTF-8 -*- #Street fighter 12/05/2020 10:58:48 from tkinter import * from tkinter.messagebox import * import pygame def start(): ''' Ecran de départ ''' global decompte, flag_r, flag_h decompte = 0 flag_r = False flag_h = False background0=can1.create_image(0,0,image=fond1,anchor="nw") def test_entree(event): ''' Pour lancer le jeu appuyer sur "return" ''' touche=event.keysym if touche=="Return" : menu() def menu(): ''' Menu de démarrage ''' global bou1,bou2,bou3,bou5,background reset_h_r_boutons() background=can1.create_image(0,0,image=fond2,anchor="nw") can1.focus_set() #boutons bou1=Button(windows,text="Quitter",fg = 'blue',compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=quitter) bou1.place(x=65,y=500) bou2=Button(windows,text="Règles",fg="blue",compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=regles) bou2.place(x=65,y=240) bou3=Button(windows,text="Commencer",fg="blue",compound=CENTER,borderwidth=0,font=('Fixedsys', '20'), command=go) bou3.place(x=65,y=110) bou5=Button(windows,text="Histoire",fg="blue",compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=histoire) bou5.place(x=65,y=370) def histoire(): ''' Affichage de l'histoire ''' global background,bou4,bou6,ennonce_h,bou8,flag_h #Efface les boutons reset_boutons() can1.itemconfig(background,image=fond_H) can1.focus_set() textefinal=''' Il fut un temps où les guerres faisaient rage. Impactant la galaxie entière des millions de victimes furent déplorés. L'objectif était toujours le même le désir ardent d'être le plus puissant. Les dirigeants des quatre-coints de la galaxie en perdaient la raison. C'est alors qu'un scientifique neutre créa deux combattants hors-pair, Rut et Bob. Tout juste sortis du four ils etaient déjà impliqués dans le combat. Alors dotés de capacités sans pareil, ils mirent fin à ces guerres et acquerirent de nouveaux pouvoirs. Des années plus tard ils sont de nouveau reunis mais cette fois pour s'affronter. Le combat aura lieu à la plage 4586, sous un soleil tropical où les deux compagnons ont par le passé mis un terme à ces guerres. L'issue du combat sera décisive pour le futur. Afin d'en connaître davantage veuillez prendre connaissance des règles. ''' ennonce_h=can1.create_text(650,330,text=textefinal,fill="black", font=('Fixedsys', '18')) #boutons bou4=Button(windows,text="Menu principal",fg="red", compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=menu) bou4.place(x=450,y=590) bou6=Button(windows,text="Règles",fg="red", compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=reset_regles) bou6.place(x=790,y=590) flag_h = True def regles(): ''' Affichage des règles du jeu ''' global background,bou7, bou9,ennonce_r,flag_r #Efface les boutons reset_boutons() can1.itemconfig(background,image=fond_R) can1.focus_set() textefinal = ''' Suivant le personnage que vous incarnez, Rut ou Bob, votre objectif est de terrasser votre adversaire. Pour ce faire vous devez enchaîner les combinaisons de touches afin de gagner le combat. Ainsi il est conseillé de prendre connaissance des commandes afin d'etablir une stratégie solide. L'enjeu de ce combat est de déterminer le futur époux de la princesse Sofya tant convoitée. Donnez tout ce que vous avez pour la séduire !!!! ''' ennonce_r=can1.create_text(700,365,text=textefinal,fill="black", font=('Fixedsys', '18')) #boutons bou7=Button(windows,text="Menu principal",fg="red", compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=menu) bou7.place(x=450,y=590) bou9=Button(windows,text="Histoire",fg="red", compound=CENTER,borderwidth=0, font=('Fixedsys', '20'), command=reset_histoire) bou9.place(x=790,y=590) flag_r = True def quitter(): ''' Quitter le jeu ''' if askyesno("Fenêtre décisive", "Êtes-vous sûr de vouloir faire ça?"): windows.destroy() else: showinfo("Fenêtre du meilleur choix", "Vous avez bien raison!") def reset_boutons(): ''' Efface les boutons ''' global bou1,bou2,bou3,bou5 bou1.place_forget() bou2.place_forget() bou3.place_forget() bou5.place_forget() def reset_h_r_boutons(): ''' Efface les boutons histoires et règles''' global bou4,bou6,bou7,bou9, flag_h, flag_r can1.delete('all') if(flag_h): bou4.place_forget() bou6.place_forget() flag_h = False if(flag_r): bou7.place_forget() bou9.place_forget() flag_r = False def reset_histoire(): ''' Efface les boutons et lancer l'histoire ''' global bou7,bou9,can1,enonce_r bou7.place_forget() bou9.place_forget() can1.delete(ennonce_r) histoire() def reset_regles(): ''' Efface les boutons et lancer les règles ''' global bou4,bou6,enonce_h bou4.place_forget() bou6.place_forget() can1.delete(ennonce_h) regles() def go(): ''' Démarre le jeu au bout de 5/10e de secondes''' global decompte reset_boutons() can1.itemconfig(background, image=mes_photos[decompte]) decompte += 1 if decompte==5: can1.itemconfig(background,image=fond_D) scene_init() else : windows.after(10, go) def scene_init(): ''' Initialise la scene de jeu ''' global pv1,pv2,score1,score2,touches,joueur1,joueur2,image_bob global image_rut,image_pv1,image_pv2,k1,k2 #attribution des joueurs/score a leurs photos joueur1=[rut,Rpoint,Rpoint2] joueur2=[bob,Bpoint,Bpied] score1=[PVr10,PVr9,PVr8,PVr7,PVr6,PVr5,PVr4,PVr3,PVr2,PVr1,PVr0] score2=[PVb10,PVb9,PVb8,PVb7,PVb6,PVb5,PVb4,PVb3,PVb2,PVb1,PVb0] #creation des images dans la fenetre graphique joueurs/score image_rut=can1.create_image(300,300,image=joueur1[0]) image_bob=can1.create_image(800,300,image=joueur2[0]) image_pv1=can1.create_image(329,65,image=score1[0]) image_pv2=can1.create_image(500,63,image=score2[0]) #definition des touches touches=[] can1.focus_set() #score pv1,pv2 = 10,10 k1,k2 = 0,0 scene() def scene(): ''' Scene de jeu ''' global pv1,pv2,score1,score2,joueur1,joueur2,touches,image_bob,image_rut global image_pv1,image_pv2,k1,k2,pause #JOUEUR 1 if "A" in touches: can1.itemconfig(image_rut,image=joueur1[1]) if "Q" in touches: can1.itemconfig(image_rut,image=joueur1[2]) #JOUEUR 2 if "P" in touches: can1.itemconfig(image_bob,image=joueur2[1]) if "M" in touches: can1.itemconfig(image_bob,image=joueur2[2]) if(touches != []): if(len(touches) == 2): touches_s = (''.join(touches)) if (touches_s == 'AP' or touches_s == 'PA' or touches_s == 'QM' or touches_s == 'MQ'): #j1 perd k1 += 1 pv1-=1 can1.itemconfig(image_pv1,image=score1[k1]) elif(touches_s == 'QP' or touches_s == 'PQ' or touches_s == 'AM' or touches_s == 'MA'): #j1 gagne k2 += 1 pv2-=1 can1.itemconfig(image_pv2,image=score2[k2]) touches = [] #Game over ? if(pv1 == 0 or pv2 == 0): can1.create_text(150,150,text= 'Game over !!!',anchor = NW, fill = 'red', font = ('helvetica', 20, 'bold')) return can1.after(1000,scene) def pressed(event): ''' on récupère la touche appuyée via t, on la met en majuscules et on l'ajoute a la liste touches ''' global touches t = event.keysym.upper() if not t in touches: touches.append(t) #Interface graphique LARGEUR = 1300 HAUTEUR = 690 windows=Tk() windows.geometry(str(LARGEUR)+'x'+str(HAUTEUR)+'+10+10') windows.title("STREET KO") windows.bind("<Key>",test_entree) can1=Canvas(windows,width=LARGEUR,height=HAUTEUR,bg="green") can1.place(x=0,y=0) can1.bind("<KeyPress>",pressed) #importation des images MENU ET SOUS MENU fond1=PhotoImage(file="start.png") fond2=PhotoImage(file="menu.png") fond_D=PhotoImage(file="decort.png") fond_P=PhotoImage(file="pause.png") fond_H=PhotoImage(file="histoire.png") fond_R=PhotoImage(file="regles.png") image_B=PhotoImage(file="bouton.png") image_B2=PhotoImage(file="bouton2.png") image_B3=PhotoImage(file="bouton3.png") #importation des images DECOMPTE top3=PhotoImage(file="3.png") top2=PhotoImage(file="2.png") top1=PhotoImage(file="1.png") topF=PhotoImage(file="FIGHT.png") #importation des images PLAYERS image_B4=PhotoImage(file="bouton4.png") rut=PhotoImage(file="rut.png") Rpoint=PhotoImage(file="rut_point.png") Rpoint2=PhotoImage(file="rut_point2.png") bob=PhotoImage(file="bob.png") Bpoint=PhotoImage(file="bob_point.png") Bpied=PhotoImage(file="bob_pied.png") mes_photos = [top3,top2,top1,topF,fond_D] #importation des images SCORE RUT PVr10=PhotoImage(file="PV rut 10.png") PVr9=PhotoImage(file="PV rut 9.png") PVr8=PhotoImage(file="PV rut 8.png") PVr7=PhotoImage(file="PV rut 7.png") PVr6=PhotoImage(file="PV rut 6.png") PVr5=PhotoImage(file="PV rut 5.png") PVr4=PhotoImage(file="PV rut 4.png") PVr3=PhotoImage(file="PV rut 3.png") PVr2=PhotoImage(file="PV rut 2.png") PVr1=PhotoImage(file="PV rut 1.png") PVr0=PhotoImage(file="PV rut 0.png") #importation des images SCORE BOO PVb10=PhotoImage(file="PV bob 10.png") PVb9=PhotoImage(file="PV bob 9.png") PVb8=PhotoImage(file="PV bob 8.png") PVb7=PhotoImage(file="PV bob 7.png") PVb6=PhotoImage(file="PV bob 6.png") PVb5=PhotoImage(file="PV bob 5.png") PVb4=PhotoImage(file="PV bob 4.png") PVb3=PhotoImage(file="PV bob 3.png") PVb2=PhotoImage(file="PV bob 2.png") PVb1=PhotoImage(file="PV bob 1.png") PVb0=PhotoImage(file="PV bob 0.png") start() windows.mainloop()
Antoine451833
Messages postés
47
Date d'inscription
vendredi 1 mai 2020
Statut
Membre
Dernière intervention
13 mai 2020
12 mai 2020 à 16:38
12 mai 2020 à 16:38
Bien vu pour l'astuce de mettre 1000 au lieu de 100, mais l’inconvenant c'est que le jeux perd de son dynamise.
Je prends note de tes conseils et les garde pour moi car notre prof ne veut pas qu'on utilise les Classes et autre fonctions plus pratique, c'est pas au programme donc chaque chose en son temps.
Mais ça n’empêche, je note tout ça pour plus tard.
L'importation des images a la fin indique une erreur il me semble, les listes sont créer avant donc les images ne sont pas encore importé.
Je prends note de tes conseils et les garde pour moi car notre prof ne veut pas qu'on utilise les Classes et autre fonctions plus pratique, c'est pas au programme donc chaque chose en son temps.
Mais ça n’empêche, je note tout ça pour plus tard.
L'importation des images a la fin indique une erreur il me semble, les listes sont créer avant donc les images ne sont pas encore importé.
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
Modifié le 12 mai 2020 à 17:14
Modifié le 12 mai 2020 à 17:14
Tu veux dire son "dynamisme" .... met 500 alors, ca fait un bon compromis
tu parles des images a la fin : mais tu as vraiment testé ou pas ???
chez moi ca marche parfaitement
L'interpréteur Python lit la définition des images en 1er, puis, lorsqu'on appelle une fonction qui contient une liste, hé bien les images sont donc connues
Ca n'est pas l'ordre d'écriture dans le programme qui compte, on est dans une programmation gérée par les évènements, pas une programmation séquentielle
Si tu regardes bien, il n'y a pas de définitions de listes ou de quoi que ce soit en dehors des fonctions, il y a d'abord toutes les fonctions l'une après l'autre et ensuite la création de l'interface, la définition des images, l'appel de start() pour démarrer et enfin la boucle mainloop() pour attendre les évènements
Même si tu n'utilise pas les classes essaye quand même de faire au maximum comme dans mon exemple, la structure, un seul canvas, les bind a la fin, les 2 variables pour retailler les fenêtres en même temps, et ma structure pour le calcul du gagnant, les textes en une seule variable et … le game over !
tu parles des images a la fin : mais tu as vraiment testé ou pas ???
chez moi ca marche parfaitement
L'interpréteur Python lit la définition des images en 1er, puis, lorsqu'on appelle une fonction qui contient une liste, hé bien les images sont donc connues
Ca n'est pas l'ordre d'écriture dans le programme qui compte, on est dans une programmation gérée par les évènements, pas une programmation séquentielle
Si tu regardes bien, il n'y a pas de définitions de listes ou de quoi que ce soit en dehors des fonctions, il y a d'abord toutes les fonctions l'une après l'autre et ensuite la création de l'interface, la définition des images, l'appel de start() pour démarrer et enfin la boucle mainloop() pour attendre les évènements
Même si tu n'utilise pas les classes essaye quand même de faire au maximum comme dans mon exemple, la structure, un seul canvas, les bind a la fin, les 2 variables pour retailler les fenêtres en même temps, et ma structure pour le calcul du gagnant, les textes en une seule variable et … le game over !
Antoine451833
Messages postés
47
Date d'inscription
vendredi 1 mai 2020
Statut
Membre
Dernière intervention
13 mai 2020
12 mai 2020 à 20:10
12 mai 2020 à 20:10
Oui j'ai essayé et ça fonctionne bien.
Je vais faire au mieux mdr
Je vais faire au mieux mdr
Phil_1857
Messages postés
1883
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
178
13 mai 2020 à 09:11
13 mai 2020 à 09:11
Bonjour Antoine,
Ok !
Tout as tous les éléments en main maintenant ...
Ok !
Tout as tous les éléments en main maintenant ...
Antoine451833
Messages postés
47
Date d'inscription
vendredi 1 mai 2020
Statut
Membre
Dernière intervention
13 mai 2020
13 mai 2020 à 13:15
13 mai 2020 à 13:15
Yep !
Merci a toi et bonne journée.
Merci a toi et bonne journée.