Menu
CoddyTech

Uma Cena de Formas

Parte da seção O loop do jogo do Journey de Pygame da Coddy. Lição 11 de 32.

Uma imagem em um jogo geralmente é composta por várias formas pequenas. Uma árvore aqui é um tronco marrom com um círculo verde em cima. Desenhe várias e você terá uma floresta.

Quando o mesmo grupo de formas aparece mais de uma vez, coloque-o em uma função que recebe a posição. Cada chamada desenha uma árvore:

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 na função é posicionada com base em x e y, então mover uma árvore significa alterar uma chamada.

A ordem continua sendo importante dentro da função. O tronco começa no centro do círculo, e o círculo é desenhado em segundo lugar, então cobre o topo do tronco. Troque as duas linhas de lugar e o tronco ficará visível através das folhas.

challenge icon

Desafio

Fácil
  1. Em draw_tree, após o tronco, desenhe a copa: um círculo verde (60, 170, 90) centralizado em (x, y) com raio 20.
  2. Abaixo de draw_tree(80, 250), chame a função mais duas vezes, para as árvores em (240, 250) e (400, 250).

Experimente você mesmo

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 as lições de O loop do jogo

Pratique por conta própria: Playground de Pygame