einen Timer einstellen, wenn die Maus zum ersten Mal gedrückt wird, ein Userevent auf der pygame Ereigniswarteschlange zu platzieren, und eine Variable auf 1 gesetzt einen Klick anzuzeigen. Wenn der zweite Klick erfolgt, überprüfen Sie die Variable und setzen Sie das Timer-Ereignisobjekt auf off. Überprüfen Sie, ob das Userevent in der Warteschlange erscheint, da dies bedeutet, dass der Timer abgelaufen ist. sehen diese schöne Antwort für weitere Informationen: Move an object every few seconds in Pygame
Hier ist der Code ist, ersetzen Sie den double_click()
Anruf mit Ihrem eigenen Funktionsaufruf:
def run():
global clock, double_click_event, timer
double_click_event = pygame.USEREVENT + 1
timer = 0
while True:
clock.tick(60)
check_events()
frame.update()
screen.blit(frame, (0,0))
pygame.display.flip()
def check_events():
global dispatcher, double_click_event, timer
events = pygame.event.get()
for event in events:
if event.type == pygame.QUIT:
sys.exit()
if event.type == pygame.MOUSEBUTTONDOWN:
if timer == 0:
pygame.time.set_timer(double_click_event, 500)
timerset = True
else:
if timer == 1:
pygame.time.set_timer(double_click_event, 0)
double_click()
timerset =False
if timerset:
timer = 1
return
else:
timer = 0
return
elif event.type == double_click_event:
# timer timed out
pygame.time.set_timer(double_click_event, 0)
timer = 0
print "evt = dble click"