¿Cómo distinguir el clic izquierdo, el clic derecho del ratón en pygame?

De api de pygame, tiene:

event type.MOUSEBUTTONDOWN, MOUSEBUTTONUP, MOUSEMOTION 

¿Pero no hay manera de distinguir entre clics derecho, izquierdo?

 if event.type == pygame.MOUSEBUTTONDOWN: print event.button 

event.button puede igualar varios valores enteros:

1 – clic izquierdo

2 – clic medio

3 – clic derecho

4 – desplazarse hacia arriba

5 – desplácese hacia abajo


En lugar de un evento, también puede obtener el estado actual del botón:

 pygame.mouse.get_pressed() 

Esto devuelve una tupla:

(clic izquierdo, botón central, clic derecho)

Cada uno es un entero booleano que representa el botón arriba / abajo.

Es posible que desee echar un vistazo más de cerca a este tutorial , así como a la respuesta de la n.st a esta pregunta de SO .

Así que el código que muestra cómo distinguir entre el clic derecho e izquierdo es así:

 #!/usr/bin/env python import pygame LEFT = 1 RIGHT = 3 running = 1 screen = pygame.display.set_mode((320, 200)) while running: event = pygame.event.poll() if event.type == pygame.QUIT: running = 0 elif event.type == pygame.MOUSEBUTTONDOWN and event.button == LEFT: print "You pressed the left mouse button at (%d, %d)" % event.pos elif event.type == pygame.MOUSEBUTTONUP and event.button == LEFT: print "You released the left mouse button at (%d, %d)" % event.pos elif event.type == pygame.MOUSEBUTTONDOWN and event.button == RIGHT: print "You pressed the right mouse button at (%d, %d)" % event.pos elif event.type == pygame.MOUSEBUTTONUP and event.button == RIGHT: print "You released the right mouse button at (%d, %d)" % event.pos screen.fill((0, 0, 0)) pygame.display.flip()