Menu
CoddyTech

Bắt đầu, kết thúc và bước

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 17 trên 33.

range nhận tối đa ba số: range(start, stop, step).

  • range(5): 0, 1, 2, 3, 4
  • range(2, 6): 2, 3, 4, 5
  • range(60, 200, 40): 60, 100, 140, 180

Nó bắt đầu từ start, mỗi lần cộng thêm step và dừng trước khi đạt đến stop. Bản thân giá trị stop không bao giờ nằm trong phạm vi.

Khi có start và step, biến vòng lặp có thể chính là vị trí, không cần tính tổng:

for x in range(60, 600, 40):
    pygame.draw.circle(screen, (255, 160, 60), (x, 420), 8)

Để kết thúc một hàng ở 580, stop phải lớn hơn giá trị đó: range(60, 580, 40) kết thúc ở 540. step có thể là số âm để đếm lùi: range(10, 0, -2) là 10, 8, 6, 4, 2.

challenge icon

Thử thách

Dễ

Dưới bầu trời đầy sao, hãy vẽ một hàng gồm 14 chiếc đèn lồng bằng một vòng lặp for.

  1. Thay chiếc đèn lồng duy nhất bằng một vòng lặp qua range với giá trị bắt đầu, giá trị kết thúc và bước nhảy: x từ 60 đến 580, cách nhau 40 pixel.
  2. Vẽ mỗi chiếc đèn thành một hình tròn màu cam (255, 160, 60), bán kính 8, tại y 420.

Nhấn Chơi: 14 chiếc đèn lồng dọc theo cạnh dưới. 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 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(8):
        pygame.draw.circle(screen, (255, 255, 255), (40 + i * 80, 80), 5)
    pygame.draw.circle(screen, (255, 160, 60), (60, 420), 8)

    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