1
votes

Comment créer une minuterie en python sans geler tout le code

Je codifie Mario en utilisant Pygame et je codifie les blocs en ce moment. Je veux créer une minuterie pour que lorsque je frappe le bloc après une seconde, le bloc retourne à sa position d'origine pour faire l'animation de frappe. Le problème est que lorsque le chronomètre est en veille, il gèle tout le jeu pendant toute la durée du chronomètre. J'ai besoin du code pour s'exécuter et après une seconde, le bloc de code précédent doit être activé.

J'ai essayé d'utiliser le mode veille pour faire le chronomètre, mais cela gèle tout le jeu. quelqu'un peut-il me laisser des connaissances? Merci!


0 commentaires

3 Réponses :


3
votes

Je vous suggère d'utiliser le module threading et de lancer deux fonctions.

À la fin, vous pouvez formater comme tel:

import time

max_time = #the time you want
start_time = time.time()
while (time.time() - start_time) < max_time:
    game()

Une autre option est la module timeit . Vous pouvez définir une minuterie et vérifier quand un certain temps est atteint avec une instruction if / while.

Une troisième option est avec le module de temps que vous avez utilisé pour dormir:

from threading import Thread
if __name__ == '__main__':
    Thread(target = game()).start()
    Thread(target = timer()).start()


0 commentaires

4
votes
from threading import Timer

def timeout():
    # do your stuff here

t = Timer(number_of_seconds, timeout)
t.start()

0 commentaires

-1
votes
import sys
import time
import os

counter=0
s = 0
m = 0
n = int(input("Till How Many Seconds do you want the timer to be?: "))
print("")

while counter <= n:
    sys.stdout.write("\x1b[1A\x1b[2k")
    print(m, 'Minutes', s, 'Seconds')
    time.sleep(1)
    s += 1
    counter+=1
    if s == 60:
        m += 1
        s = 0

print("\nTime Is Over Sir! Timer Complete!\n")
beepPath = ("C:\\Users\\Farzeen Zargar\\Desktop\\Fizz Folder\\Videos\\Youtube Video Edits")
songs = os.listdir(beepPath)
os.startfile(os.path.join(beepPath, songs[13]))

1 commentaires

Salut @LumberFizz, bienvenue sur stackoverflow! Vous répondez à une question datant de plus d'un an. Veuillez essayer de répondre à de nouvelles questions, c'est plus utile. Et ne vous contentez pas d'ajouter un bloc de code. Expliquez votre réponse pour que le créateur puisse apprendre de vous.