Случайные падения
Урок 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 помещает его прямо над окном, поэтому он появляется сверху.
Задание
Легко- Добавь
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
2События и столкновения
КорзинаПадающий блокПотренируйтесь самостоятельно: Песочница Pygame