OUJOOD.COM
Dessiner des formes différentes en PyGame
Pygame est un ensemble de modules Python multi-plateformes pour la création de jeux vidéo. Conçu pour être utilisé avec le langage de programmation Python, il comprend des bibliothèques d'images de synthèse et de sons. C'est ensuite à l'imagination ou au besoin du développeur de déterminer le type de jeu qu'il souhaite développer avec cette boîte à outils.
Il y a quatre étapes de base pour afficher des images dans la fenêtre de pygame :
- Créer un objet surface d'affichage(ou scène ou écran ou fenêtre) en utilisant la méthode display.set_mode() de pygame.
- Remplir l'objet surface de la couleur souhaitée (dans notre exemple blanc) en utilisant la méthode fill() de l'objet surface d'affichage de pygame.
- Dessiner différentes formes sur cet objet surface en utilisant les fonctions de dessin primitif de pygame.
- Afficher l'objet surface sur la fenêtre de pygame en utilisant la méthode display.update() de pygame.
Et Voici la réalisation :
Exemple : 📋 Copier le code
# Importation du module pygame dans ce programme import pygame # activer la bibliothèque pygame . # initier pygame et donner la permission # d'utiliser les fonctionnalités de pygame. pygame.init() # définir la valeur RGB # pour le blanc, le vert, # bleu, noir, rouge # respectivement. blanc = (255, 255, 255) vert = (0, 255, 0) bleu = (0, 0, 128) noir = (0, 0, 0) rouge = (255, 0, 0) # Attribution de valeurs aux variables X et Y X = 400 Y = 400 # créer l'objet surface d'affichage # de dimension spécifique..e(X,Y). display_surface = pygame.display.set_mode((X, Y )) # définit le nom de la fenêtre pygame pygame.display.set_caption('Dessin') # remplir complètement l'objet surface # avec de la couleur blanche display_surface.fill(blanc) # dessine un polygone en utilisant la méthode draw.polygon() # méthode de pygame. # pygame.draw.polygon(surface, color, pointlist, thickness) # le paramètre épaisseur de la ligne est optionnel. pygame.draw.polygon(display_surface, bleu, [(146, 0), (291, 106), (236, 277), (56, 277), (0, 106)]) # dessiner une ligne en utilisant la méthode draw.line() # méthode de pygame. # pygame.draw.line(surface, color, # point de départ, point d'arrivée, épaisseur) pygame.draw.line(display_surface, vert, (60, 300), (120, 300), 4) # dessiner un cercle en utilisant la méthode draw.circle() # méthode de pygame. # pygame.draw.circle(surface, color, # point central, rayon, épaisseur) pygame.draw.circle(display_surface, vert, (300, 50), 20, 0) # dessiner une ellipse en utilisant la méthode draw.ellipse() # méthode de pygame. # pygame.draw.ellipse(surface, color, # rectangle de délimitation, épaisseur) pygame.draw.ellipse(display_surface, noir, (300, 250, 40, 80), 1) # dessiner un rectangle en utilisant la méthode draw.rect() # méthode de pygame. # pygame.draw.rect(surface, color, # tuple rectangle, épaisseur) # le paramètre épaisseur de la ligne est optionnel. pygame.draw.rect(display_surface, noir, (150, 300, 100, 50)) # boucle infinie while True : for event in pygame.event.get() : # si le type d'objet événement est QUIT # alors quitter le pygame # et le programme. if event.type == pygame.QUIT : # désactive la bibliothèque pygame pygame.quit() # quitte le programme. quit() # dessine l'objet surface à l'écran. pygame.display.update()
Sortie :
Voici un autre exemple qui donne toutes les méthodes de dessin de pygame.draw
Exemple : 📋 Copier le code
import pygame import sys # Initialisation de pygame (assurez-vous d'avoir installé pygame au préalable) pygame.init() # Définir la largeur et la hauteur de la fenêtre width, height = 800, 600 # Créer la fenêtre screen = pygame.display.set_mode((width, height)) pygame.display.set_caption("Pygame Draw Methods") # Couleurs white = (255, 255, 255) black = (0, 0, 0) # Effacer l'écran screen.fill(white) # Dessiner des formes avec annotations pygame.draw.aaline(screen, black, (50, 50), (200, 50)) text_surface = pygame.font.SysFont(None, 24).render("aaline", True, black) screen.blit(text_surface, (50, 60)) pygame.draw.aalines(screen, black, False, [(250, 50), (400, 50), (400, 200), (250, 200)]) text_surface = pygame.font.SysFont(None, 24).render("aalines", True, black) screen.blit(text_surface, (250, 210)) pygame.draw.arc(screen, black, (50, 250, 150, 100), 0, 3.14) text_surface = pygame.font.SysFont(None, 24).render("arc", True, black) screen.blit(text_surface, (50, 360)) pygame.draw.circle(screen, black, (350, 350), 50) text_surface = pygame.font.SysFont(None, 24).render("circle", True, black) screen.blit(text_surface, (300, 400)) pygame.draw.ellipse(screen, black, (500, 250, 150, 100)) text_surface = pygame.font.SysFont(None, 24).render("ellipse", True, black) screen.blit(text_surface, (500, 360)) pygame.draw.line(screen, black, (50, 500), (200, 500), 5) text_surface = pygame.font.SysFont(None, 24).render("line", True, black) screen.blit(text_surface, (50, 510)) pygame.draw.lines(screen, black, False, [(250, 500), (400, 500), (400, 650), (250, 650)], 5) text_surface = pygame.font.SysFont(None, 24).render("lines", True, black) screen.blit(text_surface, (250, 660)) pygame.draw.polygon(screen, black, [(500, 500), (650, 500), (650, 650), (500, 650)]) text_surface = pygame.font.SysFont(None, 24).render("polygon", True, black) screen.blit(text_surface, (500, 660)) pygame.draw.rect(screen, black, (650, 500, 100, 150)) text_surface = pygame.font.SysFont(None, 24).render("rect", True, black) screen.blit(text_surface, (650, 510)) # Mettre à jour l'affichage pygame.display.flip() # Attendre que l'utilisateur ferme la fenêtre running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False pygame.time.delay(10) # Quitter pygame pygame.quit() sys.exit()
Dans cet exemple nous affichons aussi du texte sous chaque forme donnant ainsi le nom de la méthode utilisée
Comment dessiner un rectangle avec des coins arrondis dans PyGame ?
Dans ce qui suit, nous verrons comment dessiner un rectangle aux coins arrondis dans Pygame.
Fonctions utilisées :
- pygame.display.set_mode() : Cette fonction est utilisée pour initialiser une surface d'affichage. Cette fonction prend en paramètre la taille de l'écran.
- pygame.display.flip() : Cette fonction est utilisée pour mettre à jour le contenu de toute la surface d'affichage de l'écran.
- pygame.draw.rect() : Cette fonction est utilisée pour dessiner un rectangle. Elle prend la surface, la couleur et les objets pygame Rect comme paramètres d'entrée et dessine un rectangle sur la surface.
Syntaxe de la fonction :
> rect(surface, color, rect, width=0, border_radius=0, border_top_left_radius=-1, border_top_right_radius=-1, border_bottom_left_radius=-1, border_bottom_right_radius=-1)
Les paramètres border_radius n'ont été ajoutés qu'à la version 2.0.0.dev8 de PyGame.
Exemple 1 : Cet exemple dessine un rectangle dont tous les coins sont arrondis.
Exemple : 📋 Copier le code
# Importation de la bibliothèque import pygame # Initialisation de Pygame pygame.init() # Initialisation de la surface surface = pygame.display.set_mode((400, 300)) # Initialisation de la couleur color = (148, 141, 70) # Dessiner le rectangle pygame.draw.rect(surface, color, pygame.Rect(30, 30, 60, 60), 2, 5) pygame.display.flip()
En outre, Pygame peut être utilisé pour arrondir un seul coin selon les besoins. L'exemple ci-dessous illustre la mise en œuvre de cette méthode.
Exemple 2 : Cet exemple dessine un rectangle dont seul le coin supérieur gauche est arrondi.
Exemple : 📋 Copier le code
# Importation de la bibliothèque import pygame # Initialisation de Pygame pygame.init() # Initialisation de la surface surface = pygame.display.set_mode((400, 300)) # Initialisation de la couleur color = (48, 141, 70) # Dessiner le rectangle pygame.draw.rect(surface, color, pygame.Rect( 30, 30, 60, 60), 2, border_top_left_radius=5) # Affichage de l'objet pygame.display.flip()