Случайные падения
Часть раздела Игровой цикл путешествия по Pygame на Coddy. Урок 25 из 32.
Когда блок падает ниже нижнего края, помести его обратно над верхним краем, чтобы он падал снова. Его верхний край оказывается ниже нижнего, когда block.top > 360.
Чтобы сделать игру менее предсказуемой, сбрасывай блок в случайное место. Модуль random в Python выбирает числа: 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 помещает его прямо над окном, поэтому он появляется сверху.
Задание
Легко- Добавь
import randomв начало. - После падения блока, когда
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()
Все уроки раздела Игровой цикл
Потренируйтесь самостоятельно: Песочница Pygame