Menu
CoddyTech

Nảy

Bài học 30 trên 41 trong khóa học Tạo trò chơi với Pygame của Coddy.

Quả bóng bật khỏi mép trên và mép dưới. Khi chạm vào một mép, hãy đổi dấu của vy: đang đi xuống sẽ chuyển thành đi lên với cùng tốc độ.

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

Kiểm tra bằng <= và >=, không dùng ==. Quả bóng di chuyển 4 pixel mỗi khung hình, nên mép dưới lần lượt ở vị trí 395, 399, 403 và không bao giờ chính xác là 400.

Mép trái và mép phải là nơi ghi điểm, nên quả bóng không bật lại ở đó. Tạm thời, bóng bay ra ngoài.

challenge icon

Thử thách

Dễ

Cho bóng nảy khỏi cạnh trên và cạnh dưới.

  1. Sau khi di chuyển bóng, đổi dấu vy khi cạnh trên của bóng ở mức 0 trở xuống.
  2. Cũng đổi dấu khi cạnh dưới của bóng ở mức 400 trở lên.

Nhấn Chơi: bóng nảy khỏi cạnh dưới. Sau đó nhấn Kiểm tra.

Tự làm thử

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()

Tất cả bài học trong Tạo trò chơi với Pygame

Tự luyện tập: Playground Pygame