PyGame est une bibliothèque de développement de jeux puissante et populaire pour Python. Elle fournit un ensemble d’outils et de fonctions qui facilitent la création de jeux et d’autres applications interactives. Une caractéristique utile de PyGame est sa capacité à dessiner des objets et des formes.


Le module pygame.draw

Dans PyGame, dessiner des objets et des formes est un processus simple. Vous pouvez utiliser le module pygame.draw module permettant de dessiner des formes telles que des rectangles, des cercles, des lignes, etc.

Avant de commencer, assurez-vous que pip est installé sur votre appareil, puis utilisez cette commande pour installer le module PyGame module :

 pip install pygame 

Dessiner des formes de base

Le pygame.draw fournit plusieurs fonctions qui permettent de dessiner des formes de base. Chaque fonction prend un ensemble de paramètres pour définir la forme et sa position.

  • rect(): Cette fonction permet de dessiner un rectangle. C’est l’une des formes les plus utilisées dans les jeux. Vous pouvez créer des plateformes, des murs et d’autres objets avec des rectangles. La fonction prend quatre paramètres : surface (la surface sur laquelle dessiner le rectangle), couleur, rect (un objet Rect) et largeur (l’épaisseur de la ligne).
     pygame.draw.rect(surface, color, rect, width) 
  • circle(): Dessine un cercle. Il prend quatre paramètres : surface, couleur, pos (le centre du cercle), et rayon.
     pygame.draw.circle(surface, color, pos, radius) 
  • polygon(): Dessine un polygone. Il prend quatre paramètres : surface, couleur, points (une liste de points qui définissent la forme du polygone), et largeur.
     pygame.draw.polygon(surface, color, points, width)  
  • line(): Dessine une ligne. Elle prend quatre paramètres : surface, couleur, start_pos, et end_pos.
     pygame.draw.line(surface, color, start_pos, end_pos)  

Vous pouvez trouver la liste complète des fonctions et de leurs paramètres dans la documentation officielle de PyGame pour le module draw.

Dessiner des formes complexes

En plus des formes de base, PyGame vous permet de dessiner des formes complexes telles que des arcs, des ellipses et des aalines.

  • arc(): Cette fonction dessine un arc sur une surface. Un arc est une portion de cercle. Elle prend six paramètres : surface, couleur, rect, angle de départ, angle d’arrivée et largeur. Spécifiez les angles en degrés, avec 0 degré pointant vers la droite et augmentant dans le sens des aiguilles d’une montre. Le paramètre de largeur spécifie l’épaisseur de l’arc.
     pygame.draw.arc(surface, color, rect, start_angle, end_angle, width) 
  • ellipse(): Dessine une ellipse sur une surface. Une ellipse est un cercle étiré. Elle prend quatre paramètres : surface, couleur, rect et largeur.
     pygame.draw.ellipse(surface, color, rect, width) 
  • aaline(): Permet de dessiner une seule ligne anticrénelée sur une surface. L’anticrénelage est une technique utilisée pour lisser les bords d’une forme, afin qu’elle paraisse plus naturelle. Il prend quatre paramètres qui reflètent les paramètres ligne() fonction : surface, couleur, start_pos, et end_pos.
     pygame.draw.aaline(surface, color, start_pos, end_pos)  

Créer des formes imbriquées dans PyGame

Une autre fonctionnalité intéressante de PyGame est la possibilité de dessiner des formes à l’intérieur d’une autre forme. Vous pouvez le faire en utilisant une combinaison des fonctions de base de dessin de formes dans PyGame.

Lire  Découvrez les Secrets de la Détection Moderne et des Enjeux Géopolitiques Actuels

Pour dessiner une forme à l’intérieur d’une autre forme, vous pouvez d’abord dessiner la forme intérieure, puis dessiner la forme extérieure par-dessus. La forme intérieure peut être n’importe quelle forme de base, comme un rectangle ou un cercle.

Par exemple, pour dessiner un rectangle à l’intérieur d’un cercle, vous pouvez utiliser la fonction pygame.draw.circle() pour dessiner le cercle, puis utiliser la fonction pygame.draw.rect() pour dessiner le rectangle au-dessus.

Vous pouvez trouver les exemples de code suivants dans ce repo GitHub.

Voici un exemple de code qui montre comment dessiner un rectangle à l’intérieur d’un cercle :

 import pygame

# Initialize pygame
pygame.init()

# Create a window
window = pygame.display.set_mode((800, 600))

# Create a circle
circle_rect = pygame.draw.circle(window, (255, 255, 255), (400, 300), 100)

# Create a surface for the rectangle
rectangle_surface = pygame.Surface((50, 50))
rectangle_surface.set_colorkey((0, 0, 0))

# Draw the rectangle on the surface
pygame.draw.rect(rectangle_surface, (255, 0, 0), (0, 0, 50, 50))

# Blit the surface onto the circle
window.blit(rectangle_surface, (375, 275))

# Main loop
while True:
    # Quitting the game
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            exit()

    # Update the display
    pygame.display.update()

Cela crée l’effet d’un rectangle à l’intérieur d’un cercle. Vous pouvez utiliser cette technique pour créer des formes et des éléments de jeu plus complexes en combinant plusieurs formes.

jeu avec un rectangle rouge dessiné à l'intérieur d'un cercle blanc

Images de dessin

PyGame vous permet également de dessiner des images. Vous pouvez utiliser la fonction pygame.image.load() pour charger une image à partir d’un fichier et la fonction pygame.image.blit() pour dessiner l’image sur l’écran.

La syntaxe de pygame.image.load() ressemble à ceci :

 pygame.image.load(filename)  

Et voici la syntaxe pour pygame.image.blit():

 pygame.image.blit(image, rect)  

En plus de charger et de dessiner des images, PyGame fournit également plusieurs autres fonctions liées aux images. Ces fonctions vous permettent de manipuler les images de différentes manières, telles que la mise à l’échelle, la rotation, le retournement et le recadrage.

Ajout de fonctions avancées

PyGame fournit également des fonctions avancées pour dessiner des objets et des formes. Par exemple, vous pouvez utiliser la fonction pygame.mouse.get_pos() pour obtenir la position de la souris et la fonction pygame.mouse.get_pressed() pour obtenir l’état du bouton de la souris. Avec ces fonctions, vous pouvez créer une fonction « cliquer pour dessiner » qui vous permet de dessiner des formes en cliquant sur la souris.

 import pygame 

# Initialize pygame
pygame.init()

# Create a window
window = pygame.display.set_mode((800, 600))

# Main loop
while True:
    # Get the mouse position
    mouse_position = pygame.mouse.get_pos()

    # Get the mouse button state
    mouse_pressed = pygame.mouse.get_pressed()

    # Quitting the game
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            exit()

    # Drawing a circle when mouse is pressed
    if mouse_pressed[0] == 1:
        pygame.draw.circle(window, (255, 0, 0), mouse_position, 20)

    # Update the display
    pygame.display.update()

Voici le résultat :

écran de jeu avec des cercles rouges dessinés à l'aide de la souris

Créer facilement des sprites de jeu avec PyGame

PyGame fournit également un ensemble d’outils puissants pour créer facilement des sprites et des objets de jeu. Avec l’outil pygame.draw vous pouvez facilement créer des sprites que vous pouvez utiliser dans vos jeux. Vous pouvez créer des personnages, des objets et d’autres éléments de jeu en toute simplicité.