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.
Desafio
Fácil- Em
draw_tree, após o tronco, desenhe a copa: um círculo verde(60, 170, 90)centralizado em(x, y)com raio20. - 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