Impostare un timer quando il mouse viene premuto per la prima volta di mettere un userevent sulla coda eventi pygame, e impostare una variabile a 1 per indicare un clic. Quando si verifica il secondo clic, controllare la variabile e disattivare l'evento evento del timer. Controlla se l'evento si avvicina alla coda in quanto ciò significa che il timer è scaduto. vedere questa bella risposta per ulteriori informazioni: Move an object every few seconds in Pygame
ecco il codice, sostituire la chiamata double_click()
con il proprio chiamata di funzione:
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"