Bonjour, je souhaite faire un jeu avec un rectangle comme bouton. Sauf qu'après l'avoir mit dans une classe il ne s'affiche plus mais il est toujours clickable
voici mon main :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 import pygame from ressources import Accueil pygame.init() # generer la fenetre du jeu pygame.display.set_caption("Title") fenetre = pygame.display.set_mode((1000, 600)) # charger nos classes Accueil = Accueil(fenetre) Service = Service() Accueil.accueil() # boucle tant que cette condition est vrai running = True while running: # Actualisation de l'affichage pygame.display.flip() # retourne 1 si le curseur est au dessus du rectangle mouse_xy = pygame.mouse.get_pos() over_start = Accueil.rect_start.collidepoint(mouse_xy) over_credit = Accueil.rect_credit.collidepoint(mouse_xy) # si le joueur ferme cette fenetre for event in pygame.event.get(): # que l'evenement est fermeture de fenetre if event.type == pygame.QUIT: running = False pygame.quit() print("Fermeture du jeu") elif event.type == pygame.MOUSEBUTTONDOWN and over_credit: Accueil.credit()
et voici ma classe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 import pygame class Accueil: def __init__(self, fenetre): self.fenetre = fenetre self.background = pygame.Surface(self.fenetre.get_size()) self.background.fill((0,0,0)) self.rect_credit = pygame.draw.rect(self.fenetre, (0,255,8), [525, 375, 425, 50]) self.font = pygame.font.Font(None, 70) self.Text_accueil = self.font.render("text bouton",1,(10,10,10)) self.Text_credit1 = self.font.render("du text",1,(0,255,8)) def accueil(self): # Ajout du fond dans la fenêtre self.fenetre.blit(self.background, (0, 0)) # rect self.rect_credit # text self.fenetre.blit(self.Text_accueil, (625, 378)) def credit(self): # Ajout du fond dans la fenêtre self.fenetre.blit(self.background, (0, 0)) # text self.fenetre.blit(self.Text_credit1, (235, 100))
Partager