Menu
CoddyTech

Zufällige Objekte

Lektion 11 von 40 im Kurs Spiele mit Pygame erstellen von Coddy.

Wenn der Block über den unteren Rand hinausfällt, setze ihn wieder oberhalb des oberen Rands ein, damit er erneut herunterfällt. Seine Oberkante befindet sich über dem unteren Rand, wenn block.top > 360.

Damit das Spiel weniger vorhersehbar ist, lasse den Block an einer zufälligen Stelle fallen. Das Modul random von Python wählt Zahlen aus: random.randint(0, 460) ist eine ganze Zahl von 0 bis 460, einschließlich beider Grenzen.

import random

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

Warum 460? Der Block ist 20 breit, also liegt seine rechte Seite bei einem x-Wert von 460 am Fensterrand. Und y = -20 platziert ihn direkt oberhalb des Fensters, sodass er von oben hineingleitet.

challenge icon

Aufgabe

Einfach
  1. Füge oben import random hinzu.
  2. Wenn der Block herunterfällt und block.top > 360 gilt, setze block.y = -20 und setze block.x auf random.randint(0, 460).

Probier es selbst

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()
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Spiele mit Pygame erstellen

Übe selbstständig: Pygame-Playground