Menu
CoddyTech

Отскок

Часть раздела Проекты путешествия по Pygame на Coddy. Урок 12 из 31.

Мяч отскакивает от верхнего и нижнего краёв. Когда он касается одного из них, поменяй знак vy: движение вниз сменится движением вверх на ту же величину.

if ball.top <= 0 or ball.bottom >= 400:
    vy = -vy

Используй <= и >=, а не ==. За один кадр мяч перемещается на 4 пикселя, поэтому его нижний край проходит значения 395, 399, 403 и никогда не оказывается ровно на 400.

На левом и правом краях начисляются очки, поэтому мяч там не отскакивает. Пока что он вылетает за пределы поля.

challenge icon

Задание

Легко

После перемещения мяча измените знак vy, если верхняя граница мяча находится на уровне 0 или ниже либо нижняя граница — на уровне 400 или выше.

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

import pygame

pygame.init()
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("Pong")
clock = pygame.time.Clock()

ball = pygame.Rect(293, 193, 14, 14)
vx, vy = 5, 4

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    ball.x += vx
    ball.y += vy

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (255, 196, 0), ball)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconПроверьте себя

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

Все уроки раздела Проекты

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