Ich möchte die Zeit der Mausereignisse des Benutzers in Pygame berechnen, wenn Benutzer seine Maus nicht über 15 Sekunden bewegt, dann möchte ich einen Text auf dem Bildschirm anzeigen. Ich habe versucht time
Modul dafür, aber es funktioniert nicht.Python-Zeitzähler in Pygame-Mausereignisse
import pygame,time
pygame.init()
#codes
...
...
font = pygame.font.SysFont(None,25)
text = font.render("Move your mouse!", True, red)
FPS = 30
while True:
#codes
...
...
start = time.time()
cur = pygame.mouse.get_pos() #catching mouse event
end = time.time()
diff = end-start
if 15 < diff:
gameDisplay.blit(text,(10,500))
pygame.display.update()
clock.tick(FPS)
pygame.quit()
quit()
Nun Ausgang ist nicht, was ich will, ich weiß nicht, wie es zu berechnen, wenn Benutzer seine Maus nicht bewegt.
Wenn ich einen Text schreiben möchte, wenn Maus des Benutzers in einem speziellen Bereich, funktioniert es wie;
if 100 < cur[0] < 200 and 100 < cur[1] < 200:
gameDisplay.blit(text,(10,500))
Aber wie kann ich berechnen? Ich konnte sogar nicht herausfinden, wie man Python sagt, die Maus des Benutzers ist auf den gleichen Koordinaten oder nicht. Dann kann ich sagen, wenn Mauskoordinaten Änderungen, starten Sie den Timer, und wenn es größer als 15 ist, drucken Sie den Text.
Edit: Sie können es in normalen Python ohne Pygame Modul übernehmen, vorausgesetzt, dass Sie eine Funktion haben, dass die Mausereignisse zu kontrollieren, dann, wie Python zu sagen, ob Koordinaten der Maus, um den Timer nicht ändern starten, Wenn die Zeit größer als 15 Sekunden ist, drucken Sie einen Text und aktualisieren Sie den Timer.
Ihr aktueller Code setzt bedingungslos 'start = time.time() 'an der Spitze der Schleife, so dass das später berechnete" diff = end-start "immer eine relativ kleine Zahl ist. – martineau