Dans mon code:en vol stationnaire ne fonctionne que sur le premier bouton
class text:
def __init__(self, size, message, color, position, button = False, action = None):
self.size = size
self.message = message
self.color = color
self.position = position
self.text_size = pygame.font.SysFont(None, int(size*displaywidth))
self.Textsurface = self.text_size.render(self.message, True, self.color)
Textrect = self.Textsurface.get_rect()
self.Textrect = Textrect
self.Textwidth = Textrect[2]
self.Textheight = Textrect[3]
self.second_x_pos = Textrect[2] + position[0]
self.second_y_pos = Textrect[3] + position[1]
self.button = button
self.action = action
def display(self):
self.Textrect.topleft = (self.position)
gameWindow.blit(self.Textsurface, self.Textrect)
if self.button == True:
self.Textrect.topleft = (self.position)
gameWindow.blit(self.Textsurface, self.Textrect)
for event in pygame.event.get():
if event.type == pygame.MOUSEMOTION:
if self.position[0] < event.pos[0] < self.second_x_pos and self.position[1] < event.pos[1] < self.second_y_pos:
print("yee")
self.color = white
self.Textsurface = self.text_size.render(self.message, True, self.color)
gameWindow.blit(self.Textsurface, self.Textrect)
else:
self.Textsurface = self.text_size.render(self.message, True, self.color)
if event.type == pygame.MOUSEBUTTONUP :
self.action()
# menu screen
def menu_screen():
global wine
global purple
menu = True
global displaywidth
global displayheight
global gameWindow
global compltely_red
global brown
global red
# Texts
menu_txt = text(0.2,"Timm", red, (displaywidth/2,displayheight/9))
Play_txt = text(0.04, "Play ", wine, (displaywidth/7, displayheight/1.5), True, game_loop)
parallel_button = displaywidth - (displaywidth/7) - Play_txt.Textwidth
Quit_txt = text(0.04, "Quit ", compltely_red, (parallel_button, displayheight/1.5), True, quit_Everything)
#loop
while menu == True:
#the loop
for event in pygame.event.get():
if event.type == pygame.QUIT:
quit_Everything()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
quit_Everything()
if event.key == pygame.K_f:
displaywidth = 1920
displayheight = 1080
gameWindow = pygame.display.set_mode((displaywidth,displayheight), pygame.FULLSCREEN)
if event.key == pygame.K_g:
displaywidth = 960
displayheight = 960
gameWindow = pygame.display.set_mode((displaywidth,displayheight))
gameWindow.fill(green)
menu_txt.display()
Play_txt.display()
Quit_txt.display()
pygame.display.update()
Le premier bouton que j'appelle (le bouton « Play ») fonctionne parfaitement (je ne suis pas encore préoccupé par les actions, ce qui compte pour moi à le moment est le vol stationnaire). Mais le deuxième bouton est très glitchy (quand j'ai inversé l'ordre de la façon dont j'ai appelé les boutons, le premier appelé fonctionne toujours parfaitement)
votre question autre nous demandant de déboguer votre code? –