Évènement clic de la souris (TKINTER)

Fermé
KRO - Modifié le 23 avril 2018 à 18:19
 critou - 23 avril 2018 à 21:19
Bonjour, je souhaiterai créer un jeu pour mon projet de bac en ISN. Dans mon jeu j'aimerai que lorsque l'on clique sur une image le programme reconnaisse si c'est la bonne image ou non (une sorte de où est charlie), pour cela il faut que j'utilise l'évènement clic. J'ai testé cet évènement sur un programme plus classique avec une balle qui change de couleur :
def clicSouris(event):
       xClic,yClic = event.x,event.y
       if (xClic-x)**2+(yClic-y)**2<=r**2:
       canvas.itemconfigure(balle,fill=couleurs[randrange(len(couleurs))])

canvas.bind("<Button-1>", clicSouris) 

Mais maintenant, je ne vois pas comment modifier cette fonction pour qu'elle reconnaisse mon image, au niveau du if. J'espère que quelqu'un pourra m'aider, merci.


A voir également:

1 réponse

Bonjour.

Soit tu regardes si la coordonnée du clic se situe dans ton image, pour cela, il faut obtenir le rectangle délimitant ton image, ce qui se fait avec la méthode bbox du canvas.

Ou alors, tu te sers, comme je l'ai évoqué dans un autre message de la méthode find_overlapping du canvas en lui fournissant cette coordonnée du clic.
1
Merci, je vais faire des recherches sur cette méthode alors, le soucis que j'ai oublié de préciser c'est que les images seront en mouvement donc difficile de donner des coordonnées.
0
Je reviens vers toi, après plusieurs recherches sur la méthode Canvas.find_overlapping, j'ai bien compris comment l'utiliser. Mais où faut-il que je l'intègre dans la fonction ?
Merci de tes réponses !
0
critou > KRO
23 avril 2018 à 21:19
Où l'intégrer dans ta fonction ? Euh, je sais pas ^^
Je ne sais pas à quoi ta fonction ressemble, que les images soient en mouvement ou non ne change rien à l'affaire.

Ton besoin initial était de savoir si l'utilisateur a cliqué sur la bonne image, de là, tu fournis en paramètres de cette fonction le point x,y du clic, elle te retournera les identifiants des items du canvas contenant ce point, et de là à toi de vérifier que dans ces identifiants se trouve celui de ton image.
0