Sekunden zählen Python (millis)?

3 Antworten

Das geht nicht. Abur dafür bietet dir time eine wunderbaare Funktion :

time (Ganz schön witzig, das es eine Funktion gibt, die genauso heißt wie der dateiname der Datei, in der sie ligt)

time hat 0 antriebute. Es ermittelt dir die zeit von einem Festgelegten Zeitpunkt(Dieser Zeitpunkt steht im Computer) Du wirst dich jetzt sicherlich fragen : was bringt es mir, wenn ich die Zeit von einem belibigen Zeitpunkt der bei jedem Computer anders ist. Aber die Theorie ist ganz eifach :

beim Programmstart speicherst du diese Zeit in einer Variable, prüfst dann mit einer Schleife, ob die Zeit jetzt subtrahirt von der am Programmstart 4 ergibt. Wenn ja, dann setzt du x auf 1 und brichst mit break aus der Schleife. Beim definieren der schleife musst du darauf achten, das sie nur so Lange leuft bis Der benutzer eine taste Drückt. Ein Programmcode wie de Wie ich ihn Beschrieben habe könnte so aussehen :

import time as t
(importtierung für das modul, das misst, ob eine Taste gedrückt wurde z.b. pygame)

Start = t.time()

while (messung ob spieler eine taste gedrückt hat) :
  if t.time() - start < 4  :#messung ob der Spieler 4 sekunden keine taste gedrückt hat
    x = 1
    print('Benutzer hat vier sekunden lang keine Taste Gedrückt')
    break
  #Platz für weitere Produktionen(Falls welche gebraucht werden)
  
Woher ich das weiß:eigene Erfahrung

Erzeuge ein einen Timer (aus dem Modul threading), der nach 4 Sekunden dein Programm unterbricht und x=1 setzt.

Hier findest Du ein kleines Beispiel:

https://docs.python.org/3/library/threading.html?highlight=timer#timer-objects

Das Programm läuft nach t.start() ganz normal weiter und wird erst nach der gesetzten Zeit kurz unterbrochen. Das ist vermutlich genau das, was du willst.

Speicher doch einfach die timestamp in ner variable wann das letzte mal der button betätigt wurde und prüfe in einer schleife mit nem sleep von 1sekunde (es sei denn dir ist die reaktionszeit zu langsam, dann stell sie entsprechend runter) in nem anderen thread die differenz zwischen letzter betätigung und aktueller timestamp.

RobertTOnline  28.12.2017, 15:33

Sleep ist doch eigentlich unnötig, es schadet ja auch nicht, wenn diese Schleife millionen-fach durchlaufen wird, bis die entsprechende Zeit vergangen ist.

0
Kieselsaeure  28.12.2017, 15:35

allerdings verbrät dir das unnötig ressourcen unter anderem für die berechnung. die sleep variante hat an der stelle schon ihren sinn.

0