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, 4range(2, 6): 2, 3, 4, 5range(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.
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.
- Thay chiếc đèn lồng duy nhất bằng một vòng lặp qua
rangevớ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. - 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 y420.
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
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