Danh sách ngôi sao
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 25 trên 33.
Một danh sách chứa nhiều giá trị theo thứ tự trong một biến, bên trong dấu ngoặc vuông:
stars = [(100, 80), (220, 160), (360, 100)]Ở đây, mỗi phần tử là một tuple vị trí. stars[0] là phần tử đầu tiên, (100, 80), còn stars[1] là phần tử thứ hai. Chỉ số bắt đầu từ 0, giống như với range.
Vòng lặp for có thể duyệt qua một danh sách. Biến vòng lặp lần lượt nhận từng phần tử:
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)Vị trí là một tuple, nên star được truyền thẳng vào vị trí tâm. Thêm một vị trí vào danh sách thì sẽ có thêm một ngôi sao xuất hiện, mà không cần thay đổi vòng lặp. Danh sách lưu những gì đang hiển thị trên màn hình trong bộ nhớ của trò chơi; vòng lặp vẽ mọi thứ có trong danh sách.
Thử thách
DễVẽ bầu trời với năm ngôi sao từ một danh sách.
- Thêm
(360, 100),(480, 200)và(580, 70)vào cuốistars. - Thay dòng vẽ
stars[0]bằngfor star in stars:, vẽ mỗi ngôi sao thành một hình tròn màu trắng(255, 255, 255)có bán kính 5.
Nhấn Chơi: năm ngôi sao. 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.
stars = [(100, 80), (220, 160)]
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Thay đổi mọi thứ ở đây, mỗi khung hình một lần.
screen.fill((20, 24, 48))
# Vẽ ở đây, sau khi tô nền.
pygame.draw.circle(screen, (255, 255, 255), stars[0], 5)
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ăngTự luyện tập: Playground Pygame