Bonjour à tous ! je me présente: Diane-Zoé en terminale qui doit réaliser un petit programme sur interface tkinter de type flappy bird avec les "moyens du bord" comme on dit ^^
Mon idée est la suivante : le petit avion à gauche qui ne peut que monter ou descendre doit éviter des nuages qui arrivent de la droite
(par vague de 3 pour l'instant mais de position et de vitesse aléatoire )
On va faire au plus simple pour le score le but étant de tenir le plus longtemps dans la durée. ( avec mémorisation du meilleur score par exemple )
Mon programme doit vous piquer les yeux certainement car je débute et je ne dois mon salut qu'aux exemples pris de ci de la sur la toile et les cours en ligne ( et un peu mon prof quand même ! )
Mais pour l'instant je suis assez fière de moi car : j'ai réussi a afficher l'avion et lui permettre de monter et descendre youhouuu ( quoiqu'il y ai une latence entre les deux déplacements qui n'est pas agréable... )
j'ai réussi à afficher trois nuages qui arrivent de la droite vers la gauche youpiii mais .... là je bloque un peu car je n'ai qu'une seule vague et c'est fini...
j'aimerai que cette séquence se répète par exemple toutes les 3 secondes ( et par la suite que je puisse accélérer un peu avec le temps )

Voici mon code merci de me dire comment arriver à ce résultat ou de me donner la voie si vous ne voulez pas mâcher le morceau ^^
Si vous trouvez des choses a améliorer je suis preneuse !

ps: il me reste une semaine pour y arriver :p

Encore merci à tous !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
 
from tkinter import *
from random import *
 
fenetre = Tk()
fenetre.title('Flappy Bird')
 
#Creation du canvas:
canvas=Canvas(fenetre,width = 1400, height = 600 , bd=0, bg='skyblue')
canvas.pack(padx=10,pady=10)
 
#deplacement des nuages avec randomisation de vitesse        
def deplacement():
    canvas.move(Nuage_1,-(randint(3,20)),0)
    canvas.move(Nuage_2,-(randint(5,10)),0)
    canvas.move(Nuage_3,-(randint(4,30)),0)
 
    #On repete cette fonction
    fenetre.after(50,deplacement)
 
#chemin d'acces a l'image:
imgfile1 = 'nuage1.gif'
imgfile2 = 'nuage2.gif'
imgfile3 = 'nuage3.gif'
# Utilisation d'un dictionnaire pour conserver une référence:
gifsdict={}
 
#Creation des images:
img1 = PhotoImage(file = imgfile1)
gifsdict[imgfile1] = img1
img2 = PhotoImage(file = imgfile2)
gifsdict[imgfile2] = img2
img3 = PhotoImage(file = imgfile3)
gifsdict[imgfile3] = img3
 
#creation de l'avion
fichierImage=PhotoImage(file='avion29.gif')
 
#fonctions de déplacement de l'avion
def haut(event):
    canvas.move(image,0,-10)
def bas(event):
    canvas.move(image,0,10)
 
 
#reduction de l'image initiale par 2:
img_2 = fichierImage.subsample(2, 2)
image=canvas.create_image(20,0,anchor=NW,image=img_2)
 
canvas.focus_set()
 
canvas.bind('<Up>',haut)
canvas.bind('<Down>',bas)
 
 
 
#On cree les Widget images dans le canvas:
#NW=Nord West, le coin haut gauche de l'image sera positionne a (1400,random):
Nuage_1=canvas.create_image(1400,(randint(0,600)),anchor=NE,image=img1)
Nuage_2=canvas.create_image(1400,(randint(0,600)),anchor=NE,image=img2)
Nuage_3=canvas.create_image(1400,(randint(0,600)),anchor=NE,image=img3)
 
#tentative de fonction recursive pour afficher les nuages en continu avec une temporisation de 3 secondes ( d'ou les 3000 ms ).
#pour info la fonction animation suivante ne fait strictement rien à l'écran....
def animation():
    deplacement()
 
    #On repete cette fonction
    canvas.after(3000, animation)
deplacement()
animation()
 
 
 
fenetre.mainloop()