Odbicie
Lekcja 30 z 40 w kursie Twórz gry w Pygame w Coddy.
Piłka odbija się od górnej i dolnej krawędzi. Gdy tylko dotknie jednej z nich, zmień znak vy: ruch w dół zmienia się w ruch w górę o tę samą wartość.
if ball.top <= 0 or ball.bottom >= 400:
vy = -vyUżyj <= i >=, a nie ==. Piłka porusza się o 4 piksele na klatkę, więc jej dolna krawędź przechodzi przez wartości 395, 399, 403 i nigdy nie osiąga dokładnie 400.
Lewa i prawa krawędź to miejsca, w których zdobywa się punkty, więc piłka się od nich nie odbija. Na razie wylatuje poza ekran.
Wyzwanie
ŁatwyPo przesunięciu piłki zmień znak vy, gdy górna krawędź piłki znajduje się na wysokości 0 lub niżej albo jej dolna krawędź na wysokości 400 lub wyżej.
Spróbuj swoich sił
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()
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Twórz gry w Pygame
Poćwicz samodzielnie: Edytor online Pygame