https://www.pygame.org/docs/ref/mouse.html
Moduł 'mouse' służy do obsługi myszy.
Przyciski myszy po naciśnięciu i zwolnieniu generują odpowiednio zdarzenia pygame.MOUSEBUTTONDOWN i pygame.MOUSEBUTTONUP. Oba zdarzenia mają atrybut 'button', reprezentujący odpowiedni przycisk. Liczby int 1 (lewy przycisk), 2 (środkowy przycisk), 3 (prawy przycisk) odpowiadają trzem przyciskom, 4 odpowiada kręceniu kółka w górę, 5 odpowiada kręceniu kółka w dół. Oba zdarzenia mają także atrybut 'pos' zawierający krotkę (x, y).
Przesuwanie myszy generuje zdarzenia pygame.MOUSEMOTION. Ruch myszy jest podzielony ma małe i precyzyjne zdarzenia ruchu, które są wstawiane do kolejki zdarzeń. Atrybuty zdarzenia to 'pos' (krotka (x, y)), 'rel' (względne przesunięcie od ostatniego zdarzenia ruchu), 'buttons' (3-tuple bool ze stanem klawiszy podczas przesuwania).
Jeżeli kolejka zdarzeń nie jest prawidłowo czyszczona, to zdarzenia ruchu mogą ją przepełnić, a wtedy nowe zdarzenia są ignorowane bez ostrzeżenia.
W Pygame 2 pojawiły się zdarzenia pygame.MOUSEWHEEL do właściwej obsługi kółka myszy (atrybuty: x, y, flipped, which).
# mouse1.py
# MAIN GAME LOOP
while True:
# HANDLE EVENTS
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
# SPOSÓB I - badanie zdarzeń (pygame.event).
print("event down dict {}".format(event.__dict__)) # atrybuty button, pos
button_number = event.button # liczba 1-5
button_position = event.pos # (x, y)
# SPOSÓB II - badanie stanu urządzenia (pygame.mouse).
position = pygame.mouse.get_pos() # return (x, y),
# pozycja kursora względem lewego górnego rogu display
button_seq = pygame.mouse.get_pressed()
# return (button1, button2, button3), sekwencja wartości bool,
# która reprezentuje stan wszystkich przycisków myszy (True to naciśnięty)
elif event.type == pygame.MOUSEBUTTONUP:
print("event up dict {}".format(event.__dict__)) # atrybuty button, pos
elif event.type == pygame.MOUSEMOTION:
print("event motion dict {}".format(event.__dict__)) # atrybuty pos, rel, buttons