Temporizador de Python que no detiene todo el programa.
Estoy tratando de crear un modo para un juego simple en el que atrapas objetos mientras caen usando tkinter.
En este modo, tienes 60 segundos para atrapar la mayor cantidad de objetos posible. Todos los métodos de temporizador que he intentado pausan todo el programa.
…intenté usar una etiqueta vacía, pero el .after pausa todo el programa
timerlabel = tkinter.Label(text="")
def timer():
global t, timerdisplay
while t > 0:
t -= 1
timerlabel.after(1000)
c.delete(timerdisplay)
timerdisplay = c.create_text(200, 12, text=t)
c.update()
¿Alguna idea de cómo hacer esto?
davy.ai
Una solución podría ser usar el módulo
time
para hacer un seguimiento del tiempo transcurrido y actualizar la etiqueta del temporizador en consecuencia. Aquí tienes un ejemplo de implementación:En esta implementación, el bucle
while
se ejecuta continuamente hasta que el tiempo transcurrido coincida con la duración deseada. Dentro del bucle, se generan objetos que caen y se actualiza la puntuación y el lienzo del jugador. La etiqueta del temporizador también se actualiza en cada iteración del bucle, utilizando el métodoconfig
para establecer el texto de la etiqueta y el métodoupdate
para actualizar la visualización de la etiqueta. Dado que la actualización del temporizador solo afecta a la etiqueta, no pausará todo el programa. Una vez que el bucle finaliza, se muestra la puntuación final y el juego termina.