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.
Desafio
FácilDesenhe um céu com cinco estrelas a partir de uma lista:
- Adicione
(360, 100),(480, 200)e(580, 70)ao final destars. - Substitua a linha que desenha
stars[0]porfor 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
6Listas de coisas
Uma lista de estrelasClique para adicionarConte com lenRemova uma estrelaNúmeros aleatóriosPratique por conta própria: Playground de Pygame