Cái giỏ
Thuộc phần Vòng lặp trò chơi trong hành trình Pygame của Coddy. Bài học 26 trên 35.
Một trò chơi mới: các khối rơi từ trên xuống và bạn hứng chúng bằng một chiếc giỏ. Giỏ và các khối đều là hình chữ nhật, vì vậy chúng là các đối tượng pygame.Rect, giống như viên ngọc và chiếc thùng trong Gem Hunt.
basket = pygame.Rect(200, 330, 80, 16)Ngoài basket.x và basket.y, một Rect còn biết các cạnh của nó: basket.left, basket.right, basket.top, basket.bottom và điểm giữa của nó, basket.centerx.
Truyền trực tiếp Rect vào pygame.draw.rect(screen, color, basket). Rect cũng có thể tự giữ mình bên trong một Rect khác: basket.clamp_ip(screen.get_rect()) di chuyển nó trở lại bên trong cửa sổ khi nó vượt qua một cạnh. screen.get_rect() là Rect của chính cửa sổ.
Thử thách
DễTạo chiếc giỏ cho trò chơi Catch the Blocks.
- Trước vòng lặp, tạo
basket = pygame.Rect(200, 330, 80, 16). - Trước khi tô nền, di chuyển giỏ 8 pixel mỗi khung hình khi bạn giữ phím Left hoặc Right, sau đó dùng
basket.clamp_ip(screen.get_rect()). - Sau khi tô nền, vẽ giỏ bằng màu xanh lam
(80, 160, 255).
Nhấn Chơi và giữ phím Left hoặc Right: chiếc giỏ sẽ dừng ở mép. Sau đó nhấn Kiểm tra.
Tự làm thử
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Catch the Blocks")
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((30, 30, 46))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Tất cả bài học trong Vòng lặp trò chơi
1Di chuyển hình vuông
Mở cửa sổTô nền4Di chuyển theo thời gian
Thời gian deltaPixel mỗi giâyVector2Gia tốc và ma sátDi chuyển vòng quanh màn hìnhTự luyện tập: Playground Pygame