Menu
CoddyTech

Uma lista de estrelas

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

Uma lista armazena muitos valores em uma única variável, em ordem, entre colchetes:

stars = [(100, 80), (220, 160), (360, 100)]

Aqui, cada item é uma tupla de posição. stars[0] é o primeiro item, (100, 80), e stars[1], o segundo. A contagem começa em 0, como em range.

Um laço for pode percorrer uma lista. A variável do laço recebe cada item por vez:

for star in stars:
    pygame.draw.circle(screen, (255, 255, 255), star, 5)

Uma posição é uma tupla, então star vai diretamente para o lugar onde fica o centro. Adicione uma posição à lista e mais uma estrela aparecerá, sem nenhuma alteração no laço. A lista é a memória do jogo sobre o que está na tela; o laço desenha tudo o que ela contém.

challenge icon

Desafio

Fácil

Desenhe um céu com cinco estrelas a partir de uma lista:

  1. Adicione (360, 100), (480, 200) e (580, 70) ao final de stars.
  2. Substitua a linha que desenha stars[0] por for star in stars:, desenhando cada uma como um círculo branco (255, 255, 255) de raio 5.

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 tudo aqui, antes do loop do jogo.
stars = [(100, 80), (220, 160)]

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

    # Altere o que for necessário aqui, uma vez por quadro.

    screen.fill((20, 24, 48))
    # Desenhe aqui, depois de preencher a tela.
    pygame.draw.circle(screen, (255, 255, 255), stars[0], 5)

    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