Comment mettre une fonction en pause ?

Fermé
Endde - 17 mai 2015 à 00:01
 Utilisateur anonyme - 22 mai 2015 à 11:30
Bonjour,
quelqu'un peut-il m'aider ? J'aimerais créer une fonction "Pause" dans mon programme.

Voilà ce que j'ai déjà écrit :

from tkinter import *
from time import sleep
from random import randint

def demarrer():
global x1, x2, y1, y2
y = 1000
while x1<960:
no = randint(1,2)
if no==1:
x1 += 1
can.coords(BMW, x1, y1)
y = y1
elif no==2:
x2 += 1
can.coords(Volkswagen, x2, y2)
y = y2
sleep(0.001)
can.update()

def reinit():
global x1, x2, y1, y2
x1, y1 = 70, 230
x2, y2 = 70, 370
can.coords(BMW, x1, y1)


x1, y1 = 70, 230
x2, y2 = 70, 370

fen=Tk()
fen.title("Course de voiture")
can = Canvas(fen, width=800, height=600, bg='white') # Surface dans fenetre pour "dessiner"
can.pack(side=TOP, padx=5, pady=5)

b1 = Button(fen, text ='Nouvelle course', width=15, command=reinit)
b1.pack(side=LEFT)
b2 = Button(fen, text ='Partez !', width=15, command=demarrer)
b2.pack(side=LEFT)
b3 = Button(fen, text ='Quitter', width=15, command=fen.quit)
b3.pack(side=RIGHT)


# lignes
can.create_line(150, 0, 150, 700, width=5, fill='green')
can.create_line(0, 150, 1000, 150, width=5, fill="black")
can.create_line(0, 300, 1000, 300, width=5, fill="black")
can.create_line(0, 450, 1000, 450, width=5, fill="black")
can.create_line(750, 0, 750, 700, width=5, fill="red")
can.pack(side=TOP, padx=5, pady=5)

# images
photo1 = PhotoImage(file ='BMW.gif')
BMW = can.create_image(x1, y1, image=photo1)
photo2 = PhotoImage(file ='Volkswagen.gif')
Volkswagen = can.create_image(x2, y2, image=photo2)



fen.mainloop() # Enclenche reception d'evenements
fen.destroy()




1 réponse

dsy73 Messages postés 9252 Date d'inscription dimanche 22 août 2010 Statut Contributeur Dernière intervention 23 octobre 2020 2 476
17 mai 2015 à 05:11
Salut
Où veux-tu faire la "pause" ? Comment ?
Ton code ne fonctionne pas tel que tu l'as écrit. Utilise le bouton "code" de l'éditeur sur le forum pour activer la coloration syntaxique.
0
Salut,
Mon programme fait avancer deux images du côté gauche du canvas jusqu'au côté droit.
J'aimerais qu'on puisse appuyer sur un bouton "pause" afin de faire que les images s'arrête, et de pouvoir appuyer dur un bouton "démarrer", pour qu'elles repartent.
Ca c'est le bouton démarrer:
b2 = Button(fen, text ='Partez !', width=15, command=demarrer)
b2.pack(side=LEFT)

Je pense que le programme ne marche pas car je ne vous ai pas transmis les images, je vais essayer de le faire.
Merci
0
dsy73 Messages postés 9252 Date d'inscription dimanche 22 août 2010 Statut Contributeur Dernière intervention 23 octobre 2020 2 476 > Endde
Modifié par dsy73 le 17/05/2015 à 10:15
Non, il ne fonctionne pas en 1ier lieu à cause du format, les indentations ont sauté.
0
Endde > dsy73 Messages postés 9252 Date d'inscription dimanche 22 août 2010 Statut Contributeur Dernière intervention 23 octobre 2020
20 mai 2015 à 21:03
Bon alors j'aurai une autre question svp :
Sauriez-vous m'expliquer comment marche ce programme ?

def demarrer():
global x1, x2, y1, y2
y = 900
while x1<860:
no = randint(1,2) # hasard
if no== 1:
x1 += 1
can.coords(BMW, x1, y1)
y = y1
else:
no== 2
x2 += 1
can.coords(Volkswagen, x2, y2)
y = y2
can.update()
can.coords(Winner, 300, y)
0
Utilisateur anonyme
22 mai 2015 à 11:30
Ce programme sert à faire avancer d'une unité soit BMW soit Volkswagen aléatoirement.
0