-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMouse_Handling.py
98 lines (81 loc) · 3.72 KB
/
Mouse_Handling.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import pygame
import sys
class Mouse_Handling:
def __init__(self, fenetre):
self.mousex, self.mousey = pygame.mouse.get_pos()
self.exit = False
self.indicator = False
self.fenetre = fenetre
self.results = False
self.compteur = 0
def handle_mouse(self, deck, textes, couleurs, couleur_carte, images, jeu, p1, p2, quit_screen):
"""
Parameters
----------
deck : class
Objet contenant le deck avec les cartes et leur valeurs.
textes : class
Objet avec les textes (notamment le textes.fin qui sera utilisé ici "Exit")
fenetre : pygame.Surface
Fenêtre d'affichage.
couleurs : class
Objet avec les fonctions pour afficher les cercles, les couleurs.
couleur_carte : list
Liste avec les couleurs des cartes en fonction de leur nombre (pour le fichier Cartes)
images : list
Liste avec les images des cartes chargées.
jeu : class
Objet avec la fonction de jeu, gestion des points etc.
p1 : class
Objet avec les valeurs du Joueur 1.
p2 : class
Objet avec les valeurs .
quit_screen : class
Objet avec les fonctions pour quitter le jeu. et les écrans de fin
Returns
-------
None.
"""
for event in pygame.event.get():
if event.type == pygame.QUIT :
sys.exit('Partie interrompue par l\'utilisateur.')
if event.type == pygame.MOUSEBUTTONDOWN:
# On reprend les valeurs de la souris lorsque l'on clique
self.mousex, self.mousey = pygame.mouse.get_pos()
if couleurs.rectangle.collidepoint(pygame.mouse.get_pos()) and not self.exit:
# vérification que l'on n'est pas sur la fenêtre pour quitter le jeu
couleurs.circle(self.mousex, self.mousey)
# Trace le rond pour les couleurs
if deck.espace_carte.collidepoint(pygame.mouse.get_pos()) and not self.exit and couleurs.selected:
# Si pas sur l'écran pour quitter et qu'une couleur a été sélectionnée et que le deck a été cliqué
deck.tirage(images, couleur_carte)
deck.animation = True
deck.rect_carte_face = deck.carte_face.get_rect(center=(350, 250))
#Changement des coordonnées de la face de la carte, l'animation viendrait ici
jeu.jeu(couleurs.selected_color, self, deck, p1, p2, couleurs)
# Appel de la fonction de jeu pour les comparaisons et les points
self.compteur += 1
if textes.fin.get_rect().collidepoint(pygame.mouse.get_pos()):
# quitter la partie
self.exit = True
# self.exit changera la boucle choisie dans la boucle de jeu pour celle pour quitter la partie
self.event = event
def listener(self, textes):
"""
Parameters
----------
textes : class
Objet avec les textes : la font, les règles.
Returns
-------
None.
"""
# écouter la touche pour passer les règles
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
textes.rules_done = True
# fin des règles
textes.joueur = True
# début de l'affichage des joueurs
self.results = True