Menu
CoddyTech

Nhấp để thêm

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 26 trên 33.

Danh sách có thể tăng lên trong khi trò chơi chạy. stars.append(item) thêm một phần tử vào cuối danh sách.

Một cú nhấp chuột xuất hiện trong vòng lặp sự kiện dưới dạng sự kiện MOUSEBUTTONDOWN, còn event.pos là vị trí xảy ra cú nhấp, dưới dạng một tuple (x, y):

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        running = False
    if event.type == pygame.MOUSEBUTTONDOWN:
        stars.append(event.pos)

Mỗi cú nhấp thêm một vị trí. Phần vẽ đã vẽ mọi ngôi sao trong danh sách, nên ngôi sao mới sẽ xuất hiện ở khung hình tiếp theo và ở lại đó vì danh sách lưu giữ nó.

Danh sách bắt đầu rỗng trong phần thiết lập: stars = []. Nếu tạo danh sách bên trong vòng lặp trò chơi, danh sách sẽ bị xóa ở mỗi khung hình và từng ngôi sao sẽ biến mất ngay lập tức.

challenge icon

Thử thách

Dễ

Để mỗi lần nhấp chuột đặt một ngôi sao.

  1. Trong vòng lặp sự kiện, kiểm tra xem có sự kiện MOUSEBUTTONDOWN hay không.
  2. Khi có sự kiện này, thêm event.pos vào stars.

Nhấn Chơi rồi nhấp vào bầu trời: một ngôi sao xuất hiện tại vị trí bạn nhấp. 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 = []

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.
    for star in stars:
        pygame.draw.circle(screen, (255, 255, 255), star, 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

Tự luyện tập: Playground Pygame