Menu
CoddyTech

Una escena de formas

Parte de la sección El bucle del juego del Journey de Pygame de Coddy. Lección 11 de 32.

Una imagen en un juego suele estar formada por muchas formas pequeñas. Aquí, un árbol es un tronco marrón con un círculo verde encima. Dibuja varios y tendrás un bosque.

Cuando el mismo grupo de formas aparece más de una vez, ponlo en una función que reciba la posición. Cada llamada dibuja un árbol:

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)

Cada forma de la función se coloca a partir de x y y, así que mover un árbol significa cambiar una llamada.

El orden sigue siendo importante dentro de la función. El tronco empieza en el centro del círculo, y el círculo se dibuja en segundo lugar, así que cubre la parte superior del tronco. Intercambia las dos líneas y el tronco se verá a través de las hojas.

challenge icon

Desafío

Fácil
  1. En draw_tree, después del tronco, dibuja la copa: un círculo verde (60, 170, 90) centrado en (x, y) con radio 20.
  2. Debajo de draw_tree(80, 250), llámala dos veces más, para los árboles en (240, 250) y (400, 250).

Pruébalo tú mismo

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()

Todas las lecciones de El bucle del juego

Practica por tu cuenta: Playground de Pygame