Menu
CoddyTech

Quedas Aleatórias

Lição 11 de 41 do curso Crie jogos com Pygame da Coddy.

Quando o bloco passar pela parte de baixo, coloque-o de volta acima do topo para que caia novamente. O topo dele passa pela parte de baixo quando block.top > 360.

Para deixar o jogo menos previsível, faça-o cair em um lugar aleatório. O módulo random do Python escolhe números: random.randint(0, 460) é um número inteiro de 0 a 460, inclusive.

import random

if block.top > 360:
    block.y = -20
    block.x = random.randint(0, 460)

Por que 460? O bloco tem 20 de largura, então um x de 460 coloca o lado direito dele na borda da janela. E y = -20 o coloca logo acima da janela, para que ele deslize para dentro pelo topo.

challenge icon

Desafio

Fácil

Solte um novo bloco em um lugar aleatório depois de cada um.

  1. Adicione import random no início.
  2. Depois que o bloco cair, quando block.top > 360, defina block.y = -20 e block.x como random.randint(0, 460).

Pressione “Jogar”: os blocos continuam caindo em lugares aleatórios. Depois, “Verificar”.

Experimente você mesmo

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Catch the Blocks")
clock = pygame.time.Clock()

basket = pygame.Rect(200, 330, 80, 16)
block = pygame.Rect(220, 0, 20, 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]:
        basket.x -= 8
    if keys[pygame.K_RIGHT]:
        basket.x += 8
    basket.clamp_ip(screen.get_rect())

    block.y += 3

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (80, 160, 255), basket)
    pygame.draw.rect(screen, (235, 80, 80), block)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Todas as lições de Crie jogos com Pygame

Pratique por conta própria: Playground de Pygame