Menu
CoddyTech

Đặt 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 30 trên 33.

Bốn bài học cuối cùng cùng xây dựng một trò chơi nhỏ, Night Sky: bạn nhấp để đặt các ngôi sao, chúng lấp lánh, bộ đếm hiển thị số lượng sao, và khi đạt đến hai mươi thì bầu trời đã đầy. Mỗi bài học bắt đầu từ code của bài học trước đó.

Trò chơi sử dụng những gì phần này đã dạy. Các ngôi sao là một danh sách (list) vị trí, được tạo rỗng trước vòng lặp (loop) của trò chơi. Một cú nhấp sẽ thêm vị trí của nó vào danh sách, còn vòng lặp for sẽ vẽ mọi ngôi sao trong danh sách ở mỗi khung hình:

stars = []

        if event.type == pygame.MOUSEBUTTONDOWN:
            stars.append(event.pos)

    for star in stars:
        pygame.draw.circle(screen, (255, 255, 255), star, 3)

Vẽ các ngôi sao sau mặt trăng và mặt đất để chúng hiện lên phía trên. Khi đặt một ngôi sao lên mặt trăng, nó sẽ nằm phía trước mặt trăng, như thể ở gần hơn.

challenge icon

Thử thách

Dễ

Bắt đầu Night Sky: mỗi lần nhấp chuột sẽ đặt một ngôi sao.

  1. Tạo stars = [] trước vòng lặp trò chơi.
  2. Khi có sự kiện MOUSEBUTTONDOWN, thêm event.pos vào stars.
  3. Sau khi vẽ mặt trăng và mặt đất, vẽ từng ngôi sao thành hình tròn màu trắng (255, 255, 255) có bán kính 3.

Nhấn Chơi rồi nhấp vào bầu trời: mỗi lần nhấp chuột sẽ đặt một 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.

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.
    pygame.draw.circle(screen, (240, 230, 160), (560, 80), 40)
    pygame.draw.rect(screen, (14, 16, 30), (0, 430, 640, 50))

    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