Menu
CoddyTech

Une scène de formes

Fait partie de la section La boucle de jeu du Journey Pygame de Coddy. Leçon 11 sur 32.

Dans un jeu, une image est souvent composée de nombreuses petites formes. Ici, un arbre est constitué d’un tronc marron surmonté d’un cercle vert. Dessinez-en plusieurs et vous obtenez une forêt.

Lorsque le même groupe de formes apparaît plusieurs fois, placez-le dans une fonction qui prend la position en paramètre. Chaque appel dessine un arbre :

def draw_tree(x, y):
    pygame.draw.rect(screen, (120, 80, 40), (x - 5, y, 10, 30))
    pygame.draw.circle(screen, (60, 170, 90), (x, y), 20)

draw_tree(80, 250)
draw_tree(240, 250)

Chaque forme de la fonction est placée à partir de x et y, donc pour déplacer un arbre, il suffit de modifier un appel.

L’ordre compte toujours à l’intérieur de la fonction. Le tronc commence au centre du cercle, et le cercle est dessiné en second, de sorte qu’il recouvre le haut du tronc. Échangez les deux lignes et le tronc apparaîtra à travers les feuilles.

challenge icon

Défi

Facile
  1. Dans draw_tree, après le tronc, dessine la cime : un cercle vert (60, 170, 90) centré en (x, y) avec un rayon de 20.
  2. Sous draw_tree(80, 250), appelle-la deux fois de plus, pour les arbres en (240, 250) et (400, 250).

Essayez vous-même

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Forest")
clock = pygame.time.Clock()


def draw_tree(x, y):
    pygame.draw.rect(screen, (120, 80, 40), (x - 5, y, 10, 30))


running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill((30, 30, 46))
    pygame.draw.circle(screen, (240, 240, 210), (70, 60), 24)
    pygame.draw.rect(screen, (40, 90, 50), (0, 280, 480, 80))
    draw_tree(80, 250)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Toutes les leçons de La boucle de jeu

Entraînez-vous par vous-même : Playground Pygame