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.
Thử thách
DễĐể mỗi lần nhấp chuột đặt một ngôi sao.
- Trong vòng lặp sự kiện, kiểm tra xem có sự kiện
MOUSEBUTTONDOWNhay không. - Khi có sự kiện này, thêm
event.posvàostars.
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
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