Menu
CoddyTech
flag Ru iconРусскийdown icon

Случайные падения

Урок 11 из 40 курса Создавай игры на Pygame на Coddy.

Когда блок падает ниже нижнего края, перемести его обратно выше верхнего края, чтобы он снова падал. Его верхняя граница оказывается ниже нижнего края, когда block.top > 360.

Чтобы игра была менее предсказуемой, перемещай блок в случайное место. Модуль Python random выбирает числа: random.randint(0, 460) — это целое число от 0 до 460 включительно.

import random

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

Почему 460? Ширина блока — 20, поэтому при x, равном 460, его правая сторона окажется у края окна. А y = -20 помещает его прямо над окном, поэтому он появляется сверху.

challenge icon

Задание

Легко
  1. Добавь import random в начало.
  2. После падения блока, когда block.top > 360, установи block.y = -20, а block.x — в random.randint(0, 460).

Попробуйте сами

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 iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Создавай игры на Pygame

Потренируйтесь самостоятельно: Песочница Pygame