Establecer un temporizador cuando se pulsa el ratón por primera vez para colocar una UserEvent en la cola de eventos de pygame, y establecer una variable a 1 para indicar un clic. Cuando se produce el segundo clic, compruebe la variable y establezca el objeto de evento del temporizador en apagado. Verifique si el evento de uso aparece en la cola, ya que esto significa que el tiempo de espera del temporizador ha expirado. ver esta hermosa respuesta para más información: Move an object every few seconds in Pygame
Aquí está el código, reemplace la llamada double_click()
con su propia llamada a la función:
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"