Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Pygame]Evénement lors d'un clic sur une image

    26 janvier 2015 à 18:44:42

    Bonjour tout le monde, grâce à divers livre j'apprends le python en autodidacte, parallèlement j'essaie de m'initier à Pygame.
    Je rencontre un problème et je n'arrive pas à le résoudre. J'ai beau chercher, je ne trouve pas, plutôt que de rester bloquer pendant des heures, je demande donc conseil.

    Je souhaite réaliser un compteur de tour basique, on clic sur une image de type play button, au clic on incrémente le compteur
    Mais au niveau de l'événement du clic, je n'y arrive pas, j'ai lu qu'il fallait mettre l'image dans un .rect() mais je bloque totalement pour le clic de souris.

    Voici mon code:

    [CODE]#!/usr/bin/python
    # coding: utf-8
    # try a turn counter with pygame
    
    import sys, pygame
    import spqr_defines as SPQR
    from pygame.locals import *
    
    def counter():
        START_YEAR = -201
        END_YEAR = 117
        START_YEAR += 1
        return START_YEAR
    
    def main():
        #iniatilize the window
        pygame.init()
        root = pygame.display.set_mode((400, 400))
        pygame.display.set_caption("A simple turn counter test")
       
        #background
        background = pygame.Surface(root.get_size())
        background = background.convert()
        background.fill((250, 250, 250))
       
        #text background
        font = pygame.font.SysFont("Georgia", 36)
        text = font.render('Click for past one turn:', 1, (10, 10, 10))
        background.blit(text, (20, 20))
       
        #text counter
        font2 = pygame.font.SysFont("Georgia", 24)
        text2 = font.render(str(counter()), 1, (10, 10, 10))
        background.blit(text2, (220, 100))
       
        #play button for starting a new date
        playbutton = pygame.image.load("playbutton.png").convert()
        iteration = playbutton.get_rect()
        # je bloque à ce niveau
               
        background.blit(playbutton, (150, 100))
       
        #blit all on root
        root.blit(background, (0, 0))
        pygame.display.flip()
       
        #event loop
        while 1:
            for event in pygame.event.get():
                if event.type == QUIT:
                    return
                   
            root.blit(background, (0, 0))
            pygame.display.flip()
           
    if __name__ == '__main__': main()



    Je pense que ce n'est pas compliqué à trouver mais moi je n'y arrive pas :?
    • Partager sur Facebook
    • Partager sur Twitter
      26 janvier 2015 à 18:50:02

      #dans la boucle for event in...
      if event.type == MOUSEBUTTONDOWN: #a toi de voir si tu veux ne gérer que des clics particuliers
          if iteration.collidepoint(mouse.pos):
              print("clic")
      • Partager sur Facebook
      • Partager sur Twitter

      [Pygame]Evénement lors d'un clic sur une image

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown