Menu
CoddyTech

A Nave de Patrulha

Parte da seção Sprites e imagens do Journey de Pygame da Coddy. Lição 29 de 36.

Hora de criar um jogo completo: Star Patrol. Ondas de naves inimigas descem voando do topo. Sua nave patrulha a parte inferior da janela, movendo-se para a esquerda e para a direita e disparando lasers para cima. Destrua todas as ondas para vencer; deixe três inimigos passarem ou colida com eles e o jogo acaba.

Todos os objetos do jogo serão sprites: o jogador, seus lasers, os inimigos e suas explosões. O jogador vem primeiro, como no capítulo 4:

class Player(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.image = ship_image
        self.rect = self.image.get_rect(midbottom=(320, 470))

Carregue ship_image uma vez, depois da janela. O método update move o Rect com as setas e o mantém dentro da janela. O loop principal chama player.update() e desenha a nave.

Este capítulo desenvolve o mesmo programa lição por lição, então mantenha os nomes indicados nas tarefas: as verificações encontram as partes do jogo por meio deles.

challenge icon

Desafio

Médio
  1. Carregue assets/images/ship.png em ship_image.
  2. Escreva class Player(pygame.sprite.Sprite): imagem ship_image, Rect com o centro da borda inferior em (320, 470) e um update que a mova 6 pixels por quadro com as teclas Esquerda e Direita e a mantenha dentro da janela.
  3. Crie player = Player(); a cada quadro, chame player.update() e desenhe player.image em player.rect após o preenchimento.

Experimente você mesmo

import pygame

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

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

    screen.fill((12, 14, 30))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Todas as lições de Sprites e imagens

Pratique por conta própria: Playground de Pygame