Menu
CoddyTech

Đếm các vì 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 32 trên 33.

Người chơi cần biết bầu trời đã đầy đến mức nào. Hiển thị số lượng trên tổng số hai mươi ở góc trên bên trái:

text = font.render(f"Stars: {len(stars)}/20", True, (230, 230, 240))
screen.blit(text, (20, 20))

f-string kết hợp một giá trị, len(stars), với văn bản thuần, /20. Khi có bảy ngôi sao, dòng chữ sẽ là Stars: 7/20.

Tạo phông chữ ở phần thiết lập, cạnh stars = []. Tạo phông chữ sẽ tải phông chữ, việc này mất thời gian, nên chỉ làm một lần. Kết xuất văn bản không tốn nhiều thời gian và diễn ra ở mỗi khung hình, vì vậy số lượng luôn được cập nhật.

Vẽ nhãn sau cùng trong phần vẽ để không ngôi sao nào che khuất nó.

challenge icon

Thử thách

Dễ

Hiển thị số lượng ngôi sao trên bầu trời.

  1. Trong phần thiết lập, tạo font = pygame.font.Font(None, 36).
  2. Ở cuối phần vẽ, hiển thị f"Stars: {len(stars)}/20" bằng màu (230, 230, 240) và blit văn bản ở vị trí (20, 20).

Nhấn Chơi rồi nhấp chuột: số đếm tăng từ Stars: 0/20. Sau đó nhấn Kiểm tra.

Tự làm thử

import random
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.
stars = []

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, 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, (240, 230, 160), (560, 80), 40)
    pygame.draw.rect(screen, (14, 16, 30), (0, 430, 640, 50))
    for star in stars:
        colour = (255, 255, 255)
        if random.randint(1, 30) == 1:
            colour = (110, 120, 170)
        pygame.draw.circle(screen, colour, star, 3)

    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