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ỏ.
Thử thách
DễThêm một thanh đỡ cho mỗi người chơi.
- Trước vòng lặp, tạo
left = pygame.Rect(20, 160, 12, 80)vàright = pygame.Rect(568, 160, 12, 80). - Di chuyển
leftlên hoặc xuống 6 pixel bằng phím W và S, và di chuyểnrightbằng phím mũi tên lên và xuống. Giữ cả hai thanh đỡ trong cửa sổ. - Vẽ
leftmàu xanh dương(80, 160, 255)vàrightmà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