• Jogos

Acompanhamento do estudo

Checks do estudo de Pygame

Você pode ganhar até 1.0 ponto extra nas provas de Pygame ao realizar os checks de estudo (cada check realizado e validado antes da prova vale 0.1 pontos).

Comece criando o seu repositório do GitHub classroom acessando este link.

Os checks estão listados abaixo. Cada um deles deve ser feito após a conclusão de um handout específico. Faça o handout antes de tentar implementar o check.

  1. Criar janela com fundo preto que fecha quando o usuário clica no botão de fechar. Pode ser feito após a conclusão do handout "02. Criando uma janela".
  2. Desenhar a nave (arquivo assets/img/playerShip1_orange.png) na tela e pequenos círculos brancos em posições e tamanhos aleatórios para representar as estrelas. Consulte a documentação da função pygame.transform.scale para aprender a redimensionar a imagem da nave para um tamanho razoável. Você também deve desenhar a imagem de fundo (arquivo assets/img/starfield.png). Pode ser feito após a conclusão do handout "03. Desenhando na tela: Desenhando imagens".
  3. Adicionar um texto no canto superior esquerdo indicando as vidas. Utilize a fonte em assets/font/PressStart2P.ttf para desenhar um coração para cada vida (use 3 vidas inicialmente). O caractere chr(9829) é o coração (ex: coracoes = chr(9829) * 3 gera uma string com 3 corações). Pode ser feito após a conclusão do handout "03. Desenhando na tela: Desenhando texto".
  4. Adicionar um texto no canto inferior direito com o cálculo de FPS. Pode ser feito após a conclusão do handout "05. Física: Lidando com o tempo".
  5. Mover a nave com o teclado. O teclado deve mudar apenas a velocidade da nave. A posição da nave deve ser atualizada com base nessa velocidade. Pode ser feito após a conclusão do handout "05. Física: Movimento Retilíneo Uniforme".
  6. Criar meteoros (imagem assets/img/meteorBrown_med1.png) em posições aleatórias do mapa se movimentando para baixo (se preferir, pode implementar a movimentação aleatória). Quando a nave colidir com algum meteoro, o jogador deve perder uma vida. Quando a quantidade de vidas chegar a zero, o jogo deve fechar. Pode ser feito após a conclusão do handout "06. Colisões".
  7. Tocar uma música de fundo (arquivo assets/snd/tgfcoder-FrozenJam-SeamlessLoop.ogg) desde o começo do jogo e tocar um som de tiro (arquivo assets/snd/pew.wav) quando o jogador aperta a tecla ESPAÇO. Pode ser feito após a conclusão do handout "07. Som".
  8. Refatorar o código para usar classes e implementar múltiplas telas (início, jogo, gameover com opção de recomeçar o jogo). No mínimo deve possuir as classes Jogo, TelaInicial, TelaJogo, TelaGameOver, Nave, Meteoro. As classes Nave e Meteoro devem estende a classe pygame.sprite.Sprite. Os meteoros devem ser adicionados em um pygame.sprite.Group e as colisões devem ser verificadas com o pygame.sprite.groupcollide. Pode ser feito após a conclusão do handout "08. Classes".
  9. Atirar quando o jogador aperta espaço (utilize a imagem assets/img/laserRed16.png). O tiro deve sair da nave. Caso o tiro atinja um meteoro, tanto o meteoro quanto o tiro devem deixar de existir. Deve criar uma classe Tiro para desenhar e atualizar a posição de cada tiro. Pode ser feito após a conclusão de todos os handouts.
  10. Animação de explosão quando um meteoro explode. As imagens da animação estão disponíveis em assets/img/regularExplosionXX.png com XX entre 00 e 08. Deve criar uma classe Explosao, responsável pela animação da explosão do meteoro. Caso prefira, você pode modificar a classe Meteoro ao invés criar uma nova classe. Pode ser feito após a conclusão de todos os handouts.