Merhaba, arkadaşlarımızla buluştuğumuzda kullanmak için bir tabu oyunu uygulaması yapmaya çalışıyorum. Oyun sırasında süre sayacı olması lazım ama nasıl yapacağımı bulamadım bir türlü time.sleep ile yapsam olmaz çünkü tüm programı durdurur. İnternetten aramalarımda hep time.sleep kullanmışlar. Nasıl bir yöntem kullanabilirim?
Bir de soruyla alakasız olarak oyun için elimde olan kelime hala yetersiz bu konuda yardımcı olabilecek varsa (Nerden, nasıl bulabilirim vs.) çok güzel olur.
import tkinter as tk
from time import sleep
from threading import Thread
root = tk.Tk()
root.geometry("300x300")
def sayaç():
zaman = 10
while zaman > -1:
sleep(1)
label["text"] = zaman
zaman -= 1
label = tk.Label(root,text="",fg="RED")
label.pack()
buton1 = tk.Button(root,text="Wormer",command=Thread(target=sayaç).start())
buton1.pack()
root.mainloop()
import time
class Kronometre:
def baslat(self, delay):
# Bir sonraki fonksiyonda kullanmak üzere gecikme oranını self olarak belirler.
self.delay = delay
# Başlangıç zamanını saniye cinsinden elde eder.
self.initial_time = time.perf_counter()
def kontrol(self):
# Şu anki zamanı saniye cinsinden elde eder.
current_time = time.perf_counter()
# Şu anki zaman ile başlangıç zamanı arasındaki farkı kontrol eder.
if current_time - self.initial_time >= self.delay:
print(f"{self.delay} saniyelik süre sona erdi.")
# Eğer işlemleri bu fonksiyon içerisine yazmak istemiyorsanız return kullanabilirsiniz.
return True
Kronometre = Kronometre()
Kronometre.baslat(3)
while True:
# Eğer süre dolduysa döngü durdurulur.
if Kronometre.kontrol():
# Gerçekleşmesini istediğiniz işlemleri buraya koyabilirsiniz.
break