Menu
CoddyTech

Posicione as Estrelas

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

As últimas quatro lições constroem um pequeno jogo, Night Sky: você clica para posicionar estrelas, elas cintilam, um contador mostra quantas são e, ao chegar a vinte, o céu fica cheio. Cada lição começa com o código da lição anterior.

O jogo usa o que esta seção ensinou. As estrelas são uma lista de posições, criada vazia antes do loop do jogo. Um clique adiciona sua posição, e um loop for desenha todas as estrelas da lista em cada quadro:

stars = []

        if event.type == pygame.MOUSEBUTTONDOWN:
            stars.append(event.pos)

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

Desenhe as estrelas depois da lua e do chão, para que apareçam por cima. Uma estrela posicionada na lua fica então à frente dela, como se estivesse mais perto.

challenge icon

Desafio

Fácil

Inicie Night Sky:

  1. Crie stars = [] antes do loop do jogo.
  2. Em um evento MOUSEBUTTONDOWN, adicione event.pos a stars.
  3. Depois da lua e do chão, desenhe cada estrela como um círculo branco (255, 255, 255) de raio 3.

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.

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.
    pygame.draw.circle(screen, (240, 230, 160), (560, 80), 40)
    pygame.draw.rect(screen, (14, 16, 30), (0, 430, 640, 50))

    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