Projet isn debutant, besoin d'aide tkinter

Fermé
isn36 Messages postés 3 Date d'inscription lundi 7 avril 2014 Statut Membre Dernière intervention 14 avril 2014 - Modifié par jipicy le 14/04/2014 à 15:08
isn36 Messages postés 3 Date d'inscription lundi 7 avril 2014 Statut Membre Dernière intervention 14 avril 2014 - 14 avril 2014 à 10:27
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 samedi 24 septembre 2011 Statut Membre Dernière intervention 22 janvier 2015 71
9 avril 2014 à 01:18
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 samedi 24 septembre 2011 Statut Membre Dernière intervention 22 janvier 2015 71
9 avril 2014 à 01:21
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 lundi 7 avril 2014 Statut Membre Dernière intervention 14 avril 2014
14 avril 2014 à 10:17
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 lundi 7 avril 2014 Statut Membre Dernière intervention 14 avril 2014
Modifié par jipicy le 14/04/2014 à 15:09
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