Menu
CoddyTech

Cadute casuali

Lezione 11 di 41 del corso Crea giochi con Pygame di Coddy.

Quando il blocco cade oltre il bordo inferiore, rimettilo sopra il bordo superiore in modo che cada di nuovo. Il suo bordo superiore ha superato quello inferiore quando block.top > 360.

Per rendere il gioco meno prevedibile, fallo cadere in un punto casuale. Il modulo random di Python sceglie i numeri: random.randint(0, 460) è un numero intero da 0 a 460, estremi inclusi.

import random

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

Perché 460? Il blocco è largo 20, quindi un valore x pari a 460 porta il suo lato destro al bordo della finestra. E y = -20 lo posiziona appena sopra la finestra, così scivola dentro dall’alto.

challenge icon

Sfida

Facile

Fai cadere un nuovo blocco in una posizione casuale dopo ciascun blocco.

  1. Aggiungi import random all'inizio.
  2. Dopo che il blocco è caduto, quando block.top > 360, imposta block.y = -20 e imposta block.x su random.randint(0, 460).

Premi «Gioca»: i blocchi continuano a cadere in posizioni casuali. Poi premi «Verifica».

Provalo tu

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()

Tutte le lezioni di Crea giochi con Pygame

Esercitati da solo: Playground Pygame