Donc, je connais la fonction de veille, mais cela ne fonctionne pas comme je m'y attendais. Si je fais quelque chose comme ceci:Comment utiliser "sleep" correctement?
from time import sleep
print('Something')
sleep (10)
print('Something')
Il fonctionne comment (je pense), il devrait (il imprime une chose, attend puis imprime l'autre). Mais dans mon code ça ne marche pas comme ça. Ceci est tout le code:
from tkinter import *
from time import sleep
# Fenster
window = Tk()
window.title('Test')
c = Canvas(window, height=450, width=800)
c.pack()
# Bildelemente
Hintergrund = PhotoImage(file='Hintergrund.gif')
Background = Label(image=Hintergrund)
Background.image = Hintergrund
Background.place(x=0, y=0)
Boden = PhotoImage(file='Boden.gif')
Ground = Label(image=Boden)
Ground.image = Boden
Ground.place(x=0, y=300)
Char = PhotoImage(file='Char.gif')
Character = Label(image=Char)
Character.image = Char
Character.pack()
# Koordinaten ermitteln
def coordinatesX(id_num):
pos = c.coords(id_num)
x = (pos[0] + pos[2])/2
return x
def coordinatesY(id_num):
pos = c.coords(id_num)
y = (pos[1] + pos[3])/2
return y
# Charakter bewegen
def Char_move(event):
if event.keysym == 'Right' and coordinatesX(Char_) < 800 - 50:
c.move(Char_, 10, 0)
Character.place(x=(coordinatesX(Char_)), y=(coordinatesY(Char_)))
if event.keysym == 'Left' and coordinatesX(Char_) > 0:
c.move(Char_, -10, 0)
Character.place(x=(coordinatesX(Char_)), y=(coordinatesY(Char_)))
if event.keysym == 'Up' and coordinatesY(Char_) < 300 and coordinatesY(Char_) > 0:
jump()
sleep(5)
print('NA')
c.bind_all('<Key>', Char_move)
def jump():
c.move(Char_, 0, -50)
Character.place(x=(coordinatesX(Char_)), y=(coordinatesY(Char_)))
# Objekt zur Postitionsbestimmung vom Charakter
Char_ = c.create_oval(0, 0, 50, 50, fill='red')
c.move(Char_, 100, 223)
Character.place(x=(coordinatesX(Char_)), y=(coordinatesY(Char_)))
Dans cette partie, je veux attendre et faire quelque chose (dans ce « exemple » print):
jump()
sleep(5)
print('NA')
Mais quand je lance le programme et a frappé 'Up', il attend, puis l'objet monte et le programme imprime "NA" en même temps. Comment dois-je faire pour que l'objet remonte, il attend et imprime quelque chose?
Examinez-le d'une autre manière - votre question ne concerne pas le sommeil - c'est pourquoi le saut ne rafraîchit pas l'écran – UKMonkey