Menu
CoddyTech

Chame várias vezes

Parte da seção Python em uma janela de jogo do Journey de Pygame da Coddy. Lição 23 de 32.

Chame uma função em um loop e ela desenhará um padrão. O loop calcula os argumentos, e a função faz o desenho:

for i in range(8):
    draw_star(60 + i * 70, 60 + i * 45)

A cada iteração, a estrela fica 70 pixels à direita da anterior e 45 pixels abaixo, então as estrelas formam uma linha de (60, 60) até (550, 375). Altere 70 ou 45 e todas as estrelas acompanharão a mudança.

É por isso que vale a pena escrever funções. As linhas que desenham uma estrela existem uma única vez. Para mudar a aparência de todas as estrelas, com raios mais longos ou outra cor, você altera o corpo da função, e cada chamada desenha a nova estrela.

Dê à função um nome que descreva o que ela faz, geralmente usando um verbo: draw_star, move_comet, reset_game. Assim, uma linha que a chama é lida como uma frase.

challenge icon

Desafio

Fácil

Desenhe uma linha de estrelas: substitua a chamada única por for i in range(8):, chamando draw_star(60 + i * 70, 60 + i * 45). As 8 estrelas vão de (60, 60) a (550, 375).

Experimente você mesmo

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# Prepare tudo aqui, antes do loop do jogo.
def draw_star(x, y):
    pygame.draw.line(screen, (255, 240, 200), (x - 10, y), (x + 10, y), 2)
    pygame.draw.line(screen, (255, 240, 200), (x, y - 10), (x, y + 10), 2)
    pygame.draw.circle(screen, (255, 240, 200), (x, y), 4)

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

    # Faça as alterações aqui, uma vez por quadro.

    screen.fill((20, 24, 48))
    # Desenhe aqui, depois de preencher a tela.
    draw_star(60, 60)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Python em uma janela de jogo

Pratique por conta própria: Playground de Pygame