Menu
CoddyTech

Hai thanh đỡ

Thuộc phần Dự án trong hành trình Pygame của Coddy. Bài học 13 trên 33.

Hai người chơi dùng chung một bàn phím. Người chơi bên trái dùng W và S, người chơi bên phải dùng phím mũi tên lên và xuống. Mỗi thanh đỡ bóng là một Rect chỉ di chuyển lên và xuống.

left = pygame.Rect(20, 160, 12, 80)
right = pygame.Rect(568, 160, 12, 80)

Các phím chữ cái lần lượt là pygame.K_w, pygame.K_s và các phím khác, viết thường. Đọc trạng thái cả bốn phím từ một lần gọi pygame.key.get_pressed() để cả hai người chơi có thể giữ phím cùng lúc.

Giữ cả hai thanh đỡ bóng trong cửa sổ bằng clamp_ip, như bạn đã làm với chiếc giỏ.

challenge icon

Thử thách

Dễ

Thêm một thanh đỡ cho mỗi người chơi.

  1. Trước vòng lặp, tạo left = pygame.Rect(20, 160, 12, 80) và right = pygame.Rect(568, 160, 12, 80).
  2. Di chuyển left lên hoặc xuống 6 pixel bằng phím W và S, và di chuyển right bằng phím mũi tên lên và xuống. Giữ cả hai thanh đỡ trong cửa sổ.
  3. Vẽ left màu xanh dương (80, 160, 255) và right màu đỏ (235, 80, 80).

Nhấn Chơi rồi nhấn W và phím mũi tên lên: cả hai thanh đỡ đều di chuyển. 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
    if ball.top <= 0 or ball.bottom >= 400:
        vy = -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 Dự án

Tự luyện tập: Playground Pygame