Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Pygame) Fonction pour créer un bouton

8 septembre 2017 à 20:56:44

Hey ! Je viens de créer une fontion pour créer un bouton avec du texte à l'intérieur, et j'aimerais avoir votre avis dessus.

Je sais qu'elle fait des lignes à rallonge (je gère les positions des rectangles avec des proportions plutôt que des chiffres au cas où je change la taille de la fenêtre personnellement)

La voici :

def button(color, txt, pos_x, pos_y, width, height, pos_x_txt, pos_y_txt, color_txt, font, around=0):
	"""This fonction displays a button with a text inside. It needs : the color, the text and its x and y position,
	the x and y position, the width, the height, and if the user wants, a black rectangle around"""
	rect = pygame.draw.rect(SCREEN, color, [pos_x, pos_y, width, height])
	txt_button = font.render(txt, True, color_txt)
	pos_txt = txt_button.get_rect()
	pos_txt.centerx = pos_x_txt
	pos_txt.centery = pos_y_txt
	SCREEN.blit(txt_button, pos_txt)
	if around != 0:
		pygame.draw.rect(SCREEN, BLACK, [pos_x, pos_y, width, height], around)
	return rect

Le "return rect" à la fin sert à faire ça:

rect = button(#Les paramètres)
over_rect = rect.collidepoint(mouse.get_pos())

Merci de vos retours :)


  • Partager sur Facebook
  • Partager sur Twitter
14 septembre 2017 à 23:23:25

Pour faire un bouton, il vaut mieux créer une classe comme ca tu le manipule a ta guise sans entrer a chaque fois 10000 paramètre ;)

  • Partager sur Facebook
  • Partager sur Twitter
18 septembre 2017 à 20:29:44

Ok j'y réfléchirai pour mon prochain jeu :)
  • Partager sur Facebook
  • Partager sur Twitter
20 septembre 2017 à 18:21:15

Salut,

Pour en ajouter, vous avez en plus, une variable SCREEN, qui est externe. Donc, votre fonction est toujours dépendante à quelque chose de l'extérieur. (En plus, de BLACK, qui lui aussi est externe.)

Une classe sprite, serait le mieux :) Si, vous voulez un exemple, j'en écrierai un. Suffit d'une classe sprite, et un groupe, qui contiendra tous les boutons, crée. En plus, cela pourra servir à tous les autres "widget", que vous essayerez de créer.

(En fait, pas besoin d'exemple, suffit de comprendre les sprites et d'essayer.)

Voilà, bonne chance

A+

-
Edité par nolimitech 20 septembre 2017 à 18:21:31

  • Partager sur Facebook
  • Partager sur Twitter