Số ngẫu nhiên
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 29 trên 33.
Mô-đun random của Python chọn số ngẫu nhiên. Hãy nhập mô-đun này ở đầu chương trình, phía trên hoặc phía dưới import pygame:
import randomrandom.randint(a, b) cho ra một số nguyên từ a đến b, bao gồm cả hai đầu mút. random.choice(items) chọn một phần tử trong danh sách:
x = random.randint(20, 620)
size = random.choice([3, 4, 5])Mỗi lần gọi, hàm sẽ chọn lại, vì vậy hãy gọi hàm vào lúc bạn cần một giá trị mới. Một ngôi sao được đặt khi nhấn phím cách:
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
x = random.randint(20, 620)
y = random.randint(60, 300)
stars.append((x, y))Hãy chú ý hai cặp dấu ngoặc trong stars.append((x, y)): append nhận một phần tử, và phần tử đó là tuple (x, y). Nếu thay vào đó bạn chọn x và y một lần trước vòng lặp trò chơi, mọi ngôi sao sẽ xuất hiện ở cùng một vị trí.
Thử thách
Trung bìnhNhấn phím cách để rải sao ngẫu nhiên.
- Thêm
import randomở đầu. - Khi có sự kiện
KEYDOWNchoK_SPACE, chọnx = random.randint(20, 620)vày = random.randint(60, 300), rồi thêm(x, y)vàostars. - Giữ nguyên thao tác nhấp để thêm sao.
Nhấn “Chơi” rồi nhấn phím cách: sao sẽ rơi vào các vị trí ngẫu nhiê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 trò chơi.
stars = []
font = pygame.font.Font(None, 36)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
stars.append(event.pos)
# 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 star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)
text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))
screen.blit(text, (20, 20))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
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