Menu
CoddyTech

Parâmetros

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

Uma função que sempre desenha em (320, 240) é pouco útil. Parâmetros permitem que quem chama escolha. Dê nomes a eles entre parênteses na declaração de def e use-os no corpo como variáveis:

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)

Cada chamada passa valores, os argumentos, na mesma ordem: draw_star(120, 100) executa o corpo com x igual a 120 e y igual a 100. draw_star(520, 90) o executa novamente com outros valores. Uma definição, quantas estrelas você chamar.

Os parâmetros só existem dentro da função enquanto ela está sendo executada. Fora dela, x e y não significam nada, ou significam o que quer que você tenha armazenado com esses nomes ali.

challenge icon

Desafio

Médio

Deixe quem chama posicionar a estrela:

  1. Altere a definição para def draw_star(x, y): e desenhe ao redor de (x, y): as linhas de x - 10 a x + 10 e de y - 10 a y + 10, o ponto em (x, y).
  2. Chame-a três vezes: em (120, 100), (320, 180) e (520, 90).

Experimente você mesmo

import pygame

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

# Configure as coisas aqui, antes do loop do jogo.
def draw_star():
    pygame.draw.line(screen, (255, 240, 200), (310, 240), (330, 240), 2)
    pygame.draw.line(screen, (255, 240, 200), (320, 230), (320, 250), 2)
    pygame.draw.circle(screen, (255, 240, 200), (320, 240), 4)

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

    # Altere as coisas aqui, uma vez por quadro.

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

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

pygame.quit()

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

Pratique por conta própria: Playground de Pygame