Projet isn debutant, besoin d'aide tkinter

isn36 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
isn36 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
bonjour a tous
voila nous sommes en terminale S et nous avons un projet a faire pour le bac .
nous souhaitions faire un jeux avec un pion qui doit eviter les mur qui defile et nous n'arrivons pas a faire défiler notre déco autrement dis les mur dériére qui doivent défiller :s'élargir et rétrécir.
pour le moment nous avons tkinter et notre pion qui peu bouger avec le pavé numérique .
on arrive a matérialiser le mur a l'arriére mais sans aucune intéractions de celui ci .

# script pion.py
from tkinter import *

def Clavier(event):
""" Gestion de l'événement Appui sur une touche du clavier """
global PosX,PosY
touche = event.keysym
# déplacement vers le haut
if touche == '8' :
PosY -= 10
# déplacement vers le bas
if touche == '2' :
PosY += 10
# déplacement vers la droite
if touche == '6':
PosX += 10
# déplacement vers la gauche
if touche == '4':
PosX -= 10
# on dessine le pion à sa nouvelle position
Canevas.coords(Pion,PosX -5, PosY -5, PosX +5, PosY +5)





# Création de la fenêtre principale
Mafenetre = Tk()
Mafenetre.title('Doodle run')

# position initiale du pion
PosX = 150
PosY = 150

# Création d'un widget Canvas (zone graphique)
r=20
Largeur = 500
Hauteur = 500
Canevas = Canvas(Mafenetre, width = Largeur, height =Hauteur, bg ='black')
Pion = Canevas.create_rectangle(PosX-5,PosY-5,PosX+5,PosY+5,width=2,outline='white',fill='blue')
Canevas.focus_set()
Canevas.bind('<Key>',Clavier)
Canevas.pack(padx =5, pady =5)

# Création d'un widget Button (bouton Quitter)
Button(Mafenetre, text ='Quitter', command = Mafenetre.destroy).pack(side=LEFT,padx=5,pady=5)

Mafenetre.mainloop()


merci d'avance pour vos réponse
A voir également:

4 réponses

Forceseek Messages postés 321 Date d'inscription   Statut Membre Dernière intervention   71
 
tkinter pour un jeu ? C'est possible mais ça fait un peu bricolage, pourquoi ne pas utiliser pygame ?
0
Forceseek Messages postés 321 Date d'inscription   Statut Membre Dernière intervention   71
 
J'ai testé le code, mais je comprends pas bien ce que vous voulez faire avec vos murs
0
isn36 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
nous sommes obliger d'utiliser tkinter c'est le prof qui nous l'impose
nous voulons faire une voiture en gros qui doit eviter les mur donc on doit faire défiler des mur derriere qui ce déplace de gauche a droite qui s'élargissent ou ce retrécisse
0
isn36 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
from tkinter import *
from random import *
global L,y
L=[]
fenetre = Tk()
zone_dessin=Canvas(fenetre,width=500,height=500,bg="white")
zone_dessin.pack()

x=50
y=500

flag=0

while y>0:
    zone_dessin.create_rectangle(0,y,x+10,y-10,fill="black",outline="blue")
    zone_dessin.create_rectangle(x+110,y,500,y-10,fill="black",outline="red")
    y=y-10
    x=randrange(x-9,x+9)
    if x>=1 and x<=10:
        x=randrange(x,x+9)
    elif x==0:
        x=randrange(x+1,x+9)
    elif x>=480 and x<=499:
        x=randrange(x,x-9)
    elif x==500:
        x=randrange(x-1,x-9)
    L.append(x)




def murs():
    y=500
    L.pop(0)
    for i in range (0,len(L)-1):
        X=L[i]
        zone_dessin.destroy_rectangle(0,y,X+10,y-10,fill="black",outline="blue")
        zone_dessin.destroy_rectangle(X+110,y,500,y-10,fill="black",outline="red")
        x=L[i]
        zone_dessin.create_rectangle(0,y,x+10,y-10,fill="black",outline="blue")
        zone_dessin.create_rectangle(x+110,y,500,y-10,fill="black",outline="red")
        y=y-10
    if flag>0:
        fenetre.after(50,murs())
    x=randrange(x-9,x+9)
    if x>=1 and x<=10:
        x=randrange(x,x+9)
    elif x==0:
        x=randrange(x+1,x+9)
    elif x>=480 and x<=499:
        x=randrange(x,x-9)
    elif x==500:
        x=randrange(x-1,x-9)
    L.append(x)

    
def start():
    global flag
    if flag==0:
        flag=1
        murs()

def pause():
    global flag
    flag=0


pause=Button(fenetre,text="Pause",command=pause)
pause.pack()
demarrer=Button(fenetre,text="Demarrer",command=start)
demarrer.pack()
quitter=Button(fenetre,text="Quitter",command=fenetre.destroy)
quitter.pack()



fenetre.mainloop()



voila on a avancer un peu sur la modélisation des murs mais on n'arrive pas a les faire défiler en sachant que les mur ne doivent pas avoir trop d'écarts entre chaque morceaux
0