Sử dụng biến vòng lặp
Thuộc phần Python trong cửa sổ trò chơi trong hành trình Pygame của Coddy. Bài học 18 trên 33.
Biến vòng lặp là một con số như mọi số khác, nên bạn có thể thực hiện phép tính với nó và thay đổi nhiều hơn cả vị trí. Ở đây, mỗi hành tinh lớn hơn và vàng hơn hành tinh trước đó:
for i in range(6):
x = 70 + i * 100
radius = 5 + i * 5
colour = (255, 80 + i * 30, 120)
pygame.draw.circle(screen, colour, (x, 240), radius)Tính lần lượt với i = 2: x bằng 270, bán kính là 15, màu là (255, 140, 120). Với i = 5: x bằng 570, bán kính là 30, màu là (255, 230, 120).
Các biến được tạo bên trong thân vòng lặp, như x và radius, nhận giá trị mới ở mỗi lần lặp. Đặt tên cho các phần trước giúp dòng vẽ ngắn gọn và rõ ràng.
Giữ mọi số màu trong khoảng từ 0 đến 255. Ở đây, giá trị xanh lá lớn nhất là 80 + 5 * 30, bằng 230, nên vẫn an toàn.
Thử thách
Trung bìnhLàm cho mỗi hành tinh lớn hơn và có màu vàng hơn hành tinh trước đó.
- Giữ hành tinh
iở tâm(70 + i * 100, 240). - Đặt bán kính là
5 + i * 5, từ 5 đến 30. - Đặt màu là
(255, 80 + i * 30, 120).
Nhấn “Chơi”: sáu hành tinh, mỗi hành tinh lớn hơn và có màu vàng hơn. Sau đó nhấn “Kiểm tra”.
Tự làm thử
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Thiết lập mọi thứ ở đây, trước vòng lặp (loop) của trò chơi.
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Thay đổi mọi thứ ở đây sau mỗi khung hình.
screen.fill((20, 24, 48))
# Vẽ ở đây, sau khi tô nền.
for i in range(6):
pygame.draw.circle(screen, (255, 80, 120), (70 + i * 100, 240), 10)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Tất cả bài học trong Python trong cửa sổ trò chơi
1Cửa sổ đầu tiên
Chương trình đầu tiên của bạnIn ra một thông điệpIn ra một sốMàu sắc dưới dạng sốVẽ mặt trăng4Vòng lặp để vẽ
Lặp lại với forBắt đầu, kết thúc và bướcSử dụng biến vòng lặpVòng lặp lồng nhauĐếm bằng whileTự luyện tập: Playground Pygame