Finalize seu jogo
Lição 40 de 40 do curso Crie jogos com Pygame da Coddy.
Agora, as etapas 3 a 5: um desafio, um final e texto. Rock Dodge usa uma ideia que você ainda não viu: uma lista de Rects: uma nova pedra a cada 400 ms, muitas na tela ao mesmo tempo.
rocks = []
# em um evento do temporizador NEW_ROCK:
rocks.append(pygame.Rect(random.randint(0, 450), -30, 30, 30))
# a cada quadro:
for rock in rocks:
rock.y += 5
if rock.colliderect(player):
state = "lost"
rocks = [rock for rock in rocks if rock.top < 360]A última linha é uma compreensão de lista: uma nova lista contendo apenas as pedras que ainda estão na tela, para que a lista não cresça para sempre.
Uma string state, "playing", "lost" ou "won", substitui várias sinalizações. E pygame.time.get_ticks() retorna os milissegundos desde que o jogo começou, o que permite criar um cronômetro: sobreviva por 20 segundos para vencer.
Personalize seu jogo: mude as cores, as velocidades, as regras. Depois, jogue. Se estiver difícil demais vencer ou fácil demais perder, mude os números até ficar divertido.
Desafio
FácilFinalize seu jogo para que ele tenha:
- Algo que se mova sozinho.
- Texto na tela, como uma pontuação ou um cronômetro.
- Um desfecho: uma forma de vencer, uma forma de perder ou ambos.
As verificações procuram texto, algo que se mova sem nenhuma tecla pressionada, um jogo que funcione por 30 segundos sem erros e uma janela que se feche. Todo o resto fica a seu critério.
Experimente você mesmo
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Rock Dodge")
clock = pygame.time.Clock()
player = pygame.Rect(220, 320, 40, 20)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
player.x -= 7
if keys[pygame.K_RIGHT]:
player.x += 7
player.clamp_ip(screen.get_rect())
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (80, 160, 255), player)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Crie jogos com Pygame
Pratique por conta própria: Playground de Pygame