Comment dois-je répondre à des clics de souris sur les images-objets dans PyGame?

Qu'est-ce que la manière canonique de faire vos sprites répondre aux clics de la souris dans PyGame ?

Voici quelque chose de simple, dans ma boucle d'événement:

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        exit_game()
    [...]
    elif (  event.type == pygame.MOUSEBUTTONDOWN and
            pygame.mouse.get_pressed()[0]):
        for sprite in sprites:
            sprite.mouse_click(pygame.mouse.get_pos())

Quelques questions à ce sujet:

  1. Est-ce la meilleure façon de répondre aux clics de la souris ?
  2. Que si la souris reste enfoncé sur le sprite pour un certain temps ? Comment puis-je faire un événement unique ?
  3. Est-ce une façon raisonnable d'informer tous mes sprites du clic ?

Merci d'avance

OriginalL'auteur Eli Bendersky | 2008-12-19