Menu
CoddyTech

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.

challenge icon

Thử thách

Trung bình

Làm cho mỗi hành tinh lớn hơn và có màu vàng hơn hành tinh trước đó.

  1. Giữ hành tinh i ở tâm (70 + i * 100, 240).
  2. Đặt bán kính là 5 + i * 5, từ 5 đến 30.
  3. Đặ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

Tự luyện tập: Playground Pygame