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

Отскок

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

Мяч отскакивает от верхнего и нижнего краёв. В момент касания одного из них поменяй знак 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

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